簡體   English   中英

用php閱讀pdf關鍵字

[英]Read pdf keywords with php

有誰知道從.pdf文件中“讀取” /提取關鍵字的簡單方法? 此文件不受密碼保護,它是在同一服務器usinf FPDF類上生成的。

我知道有一些“強大”的工具(不是免費的)來操縱.pdf,它提供了一種獲取所有元數據的簡單方法。

我也知道.pdf將所有元數據存儲在<< >>字符內,並在元數據名稱之前使用特殊字符/來標識該字符。 我需要的是“ / Keywords”后面的字符串,並將其存儲在變量中。

有什么想法可以解析並僅獲取該字符串嗎?

(當前,我正在關鍵字中編寫一個JSON字符串,因此如下所示: ([{"FirstName":"7bis","LastName":"lastName","email":"email@email.com"}])

使用文本編輯器打開pdf文件,如下所示:

/F1 6 0 R
>>
/XObject <<
>>
>>
endobj
7 0 obj
<<
/Keywords ([{"FirstName":"7bis","LastName":"lastName","email":"email@email.com"}])
/Producer (FPDF 1.81)
/CreationDate (D:20160531084015)
>>
endobj

謝謝所有的建議;)

最后,經過一些“編碼”和一些有關常規解析的閱讀后,我找到了一種提取所需內容的方法。 實際上,我正在打開.pdf文件並將其存儲為字符串,然后解析該字符串並提取關鍵字后的內容

$file = "/directory/of/file/example.pdf";
$stringedPDF = file_get_contents($file, true);
preg_match('/(?<=Keywords )\S+/i', $stringedPDF, $match);
return $match[0];

我非常確定我們可以進行一些“調整”,因為“元數據”始終位於文件的“近端”。 僅將文件的“最后”部分保存而無需將所有文件保存到字符串中,這將是很好的選擇,這將特別節省大量.pdf文件大小的時間。

您可以嘗試下面的源代碼

$parser = new \Smalot\PdfParser\Parser();
$pdf    = $parser->parseFile('document.pdf');
$text   = $pdf->getDetails();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM