嗨,我知道幾個PDF 發電機爲PHP(fpdf,dompdf等) 我想知道的是關於一個解析器。是否有PHP的解析器?
由於我無法控制的原因,我需要的某些信息僅在pdf 中的表中,我需要提取該表並將其轉換爲數組。
有什麼建議嗎?
嗨,我知道幾個PDF 發電機爲PHP(fpdf,dompdf等) 我想知道的是關於一個解析器。是否有PHP的解析器?
由於我無法控制的原因,我需要的某些信息僅在pdf 中的表中,我需要提取該表並將其轉換爲數組。
有什麼建議嗎?
看看GhostScript或ITextSharp,這裏有各種各樣的跨平臺版本。
Zend_Pdf是Zend Framework的一部分。其手冊指出:
的
Zend_Pdf
組分是PDF (便攜式文檔格式) 操縱引擎。它可以加載, 創建,修改和保存文件。 因此,它可以幫助任何PHP應用程序 動態創建PDF文檔 修改現有文檔或 從頭開始生成新文檔。
+1 - Zend Framework組件可靠地按照他們所說的去做。 – karim79 2009-08-09 22:50:23
我不相信你可以閱讀使用Zend_Pdf的PDF文件中的文本 – 2010-03-18 14:14:03
除了Zend_Pdf不支持PDF格式> 1.4 – 2013-05-09 01:12:28
它實際上可能沒有爲PDF失去那種信息的PDF裏面的一張桌子......
This是PHP PDF解析器,它存在於兩種形式:
該鏈接已死,但我認爲這是它的一個分支:https://github.com/mark9000/FPDI – nullability 2013-09-24 18:47:46
我以前寫過一個(對於類似的需求),我可以這樣說:玩得開心。這是一項相當複雜的任務。 PDF specification是龐大而笨拙的。有幾種存儲文本的方法。最引人注目的是每個PDF生成器在工作方式上都有所不同。因此,雖然像TFPDF或DOMPDF這樣的東西創建真正容易閱讀PDF(從機器的角度來看),但Acrobat製作了一些非常地獄般的文檔。
原因是它如何寫文本。大多數基於DOM的渲染器 - 我已經用它 - 將整行寫成一個字符串,並將其定位一次(這非常容易閱讀)。 Acrobat試圖通過一次只寫入一個或幾個字符來更高效地(並且是),並獨立地定位它們。雖然這真的簡化了渲染,但它使閱讀更加困難。
這裏的優勢在於PDF格式本身非常簡單。你有遵循常規語法的「對象」。然後,您可以將它們鏈接在一起以生成內容。該規範在描述文件格式方面做得很好。但現實世界讀書是要採取一些腦力...
建議一些有用的作品,我有學習困難的方式,如果你要自己編寫:
65
可能不會是A
...您需要找到一個地圖對象並根據其中的字符推斷它正在做什麼。而且它是有效的,因爲如果一個字符沒有出現在該字體的文檔中,它就不包含它(如果你嘗試以編程方式編輯一個PDF,這會使生活變得困難)...strlen
。使用mb_strlen($string, '8bit')
,因爲它會補償不同的字符集(並允許其他字符集中的潛在無效字符)。否則,好運...
+1我甚至可以稱之爲噩夢。規範很大,一個PDF文件幾乎類似於一個文件系統,在這個文件系統中有許多不同的選項和選擇......你當然可以看到他們如何在那裏隱藏破解破解能力。 – Rudu 2010-08-31 22:07:19
您是否期望Adobe提供更少的內容? – bpeterson76 2010-09-02 15:49:16
@ bpeterson76,是的..我不希望我的PDF可以下載:( – 2014-02-13 10:32:54
我使用PDFBox的爲(http://pdfbox.apache.org/)。這個軟件是基於Java和平臺獨立的。它工作快速可靠。你可以通過exec或者shell執行或者通過PHP/Java-Bridge(http://php-java-bridge.sourceforge.net/)
非常感謝,這正是我正在尋找的! – 2ndkauboy 2010-09-02 16:44:42
我可以給予我們一個關於如何提取PDF文本的實例的任何人的賞金。該解決方案必須使用免費庫(無xPDF或PDF2Text)和獨立平臺(必須在win和unix上工作,因此不需要PDF2Text)。它可以使用PHP的exec()或shell()函數。 – 2ndkauboy 2010-08-31 11:50:46
謝謝Kau-Boy。也許賞金將有助於激發更詳細的答案。 – elviejo79 2010-09-01 04:39:58