回答
退房 「SimpleTextParser」 和com.itextpdf.text.pdf.parser包的其餘部分(或任何其稱爲C#-Ville)。
請注意,「文本的第一行」是PDF中非常滑溜的概念。字形在特定座標處繪製。如果給定的字形叢發生共享基線,它們在視覺上位於同一條線上。如果給定的共享基線是最靠近頁面頂部的基線,則它是「第一個」。
哦,頁面可能會旋轉,將所有東西都扔到一個叫做「矩陣數學」的特殊類型的地獄中。
沒有特別的要求按照邏輯順序寫出PDF中的文本。人們可以完成所有'a',然後'b'等等。沒有血腥可能(或有效),但完全合法。可能是給定字體中的所有文本都是繪製的,後面跟着下一個字體中的所有文本,等等。如果第一行文本恰好處於兩種不同的字體(粗體,斜體等)中,那麼您可能會發現比想要找到正確的文本行更難。程序可以按字母順序遍歷字體,或將它們存儲在哈希映射中......不依賴於邏輯順序來匹配「繪製的命令」。遲早(可能會更早)你會受到無禮的震驚。
我建議你去閱讀一個iText FAQ或兩個。你的問題暴露了一個無知的程度,只需你付出一點努力就能輕鬆治癒。如果沒有其他的話,從iText In Action(及其樣品聚寶盆)免費提供的章節應該證明是明亮的。
而所有假設你的PDF中的文本確實是文本。它可能是未映射的字形(沒有「字形」信息的「字形集合」),位圖或線條藝術。如果出現這種情況,你幾乎會被OCR卡住(至少應該以合理的順序給你提供文本)。如果您可以從Acrobat/Reader中選擇,複製和粘貼,則可以使用iText獲取文本。如果沒有,你幾乎註定了。 – 2010-11-09 23:52:16
byte[] pdf;
BufferedReader in = new BufferedReader(new InputStreamReader(new ByteArrayInputStream(pdf)));
String firstLine = in.readLine();
in.close();
- 1. 獲取pdf的第一頁作爲pdf的字節數組的圖像
- 2. 讀取字節數組
- 3. 讀取字節數組
- 4. 讀取文件的第一個字節
- 5. 從字節數組讀取行(不將字節數組轉換爲字符串)
- 6. 如何使PDF文件作爲字節數組讀取?
- 7. 讀取字節數組與將字節數組寫入文件
- 8. 獲取字節數組的讀取器
- 9. 第二個字節[]合併PDF時覆蓋第一個字節[]
- 10. 流PDF到字節數組
- 11. 字節數組爲pdf
- 12. 生成PDF字節數組
- 13. 從字節數組獲取第0位
- 14. 用OpenGL讀取圖像字節數組
- 15. 作爲字節數組讀取文件
- 16. 讀取/寫入字節數組的Android
- 17. 與字節數組異步讀取Stdout
- 18. 讀取字節數組多個文件
- 19. 讀取Java中的C#字節數組
- 20. std ::數組和字節讀取
- 21. 從字節數組讀取3位
- 22. 轉到:讀取的字節到數組
- 23. 從字節數組讀取圖片
- 24. 如何從PDF生成的PDF中獲取字節數組?
- 25. 從字節獲取第一行字符與出字節
- 26. 從數組讀取字節數組到Java數組
- 27. 從C#中的BinaryReader讀取字符串不讀取第一個字節
- 28. 從字節數組中讀取兩個字節
- 29. 將文件讀取到字節數組時的冗餘字節
- 30. 如何從c中的字節數組讀取字節範圍
我不知道,但我想我會有更多的運氣直接詢問iText背後的人,如果它可能與他們的產品。 – 2010-11-08 20:53:18
從我最小的PDF格式知識中,我可以告訴你,閱讀第一行文本需要先閱讀/解析文本。 – Vercas 2010-11-08 20:58:32