使用 TCPDF 檢視 PDF文件是否保護

  • 313
  • 0

最近有個需求,需要阻擋使用者上傳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 "檔案受到保護";
}

即可完成判斷檔案是否加密