最近有個需求,需要阻擋使用者上傳PDF不可加密,否則導致PDF 合併失敗
今天 Track Code 這位作者的套件
https://github.com/smalot/pdfparser
發現他怎麼發現PDF文件是被加密的 Track Code 一下 原來在 Line 93 行 會去實體化 TCPDF_PARSER 的物件
這個物件是解析 PDF 屬性的類別
Line 93 行 會回傳已經解析過的 PDF 文檔資訊 (陣列型態)
Line 98 行 判斷是否文檔被加密
接下來我們要寫 程式碼 並且我們使用 TCPDF 套件來完成需求
使用 Composer 安裝以下套件
https://packagist.org/packages/tecnick.com/tcpdf
並填寫以下程式碼
<?php require_once "vendor/autoload.php"; $file = file_get_contents("your-file-path.pdf"); $tcpdf = new TCPDF_PARSER($file); $data = $tcpdf->getParsedData(); if (isset($data[0]['trailer']['encrypt'])) { echo "檔案受到保護"; }
即可完成判斷檔案是否加密