我正在做一個Java程序來讀取加密的PDF文件,並提取文件頁面的內容,包括文本,圖像和它們的位置(x,y座標)文件。現在我正在使用PDFBox來達到此目的,並且我正在獲取文本和圖像。但我無法獲得文字位置和圖像位置。閱讀一些加密的PDF文件也有一些問題。使用PDFBox讀取文本和圖像位置(xy座標)
6
A
回答
2
看看org.apache.pdfbox.examples.util.PrintTextLocations
。我已經使用了它,並且對PDF文檔中元素和邊界框的佈局進行分析非常有幫助。它還顯示用白色墨水打印的項目,或者在可打印區域外面(可能是文檔水印,或作者遺漏的「遺忘」項目)。
用例:
java -cp app/target/pdfbox-app-1.5.0.jar org.apache.pdfbox.examples.util.PrintTextLocations ~/tmp/mydoc.pdf >~/tmp/out-text-locations.txt
你會得到類似的東西:
Processing page: 0
String[53.9,59.856995 fs=-6.0 xscale=6.0 height=-3.666 space=1.3320001 width=4.6679993]A
String[58.568,59.856995 fs=-6.0 xscale=6.0 height=-3.666 space=1.3320001 width=2.6640015]f
String[61.232002,59.856995 fs=-6.0 xscale=6.0 height=-3.666 space=1.3320001 width=1.6679993]e
...
,你可以很容易地解析和使用繪製元素的位置,邊界框,而「流」 (通過所有元素的軌跡)等等。我相信你已經知道,你會發現PDF幾乎不可能轉換成文本。它實際上只是一個圖形描述格式(即打印機或屏幕),而不是標記語言。您可以輕鬆製作一個打印「Hello world」的PDF文件,但它會隨機跳過字符位置(如果您願意,可以使用不同於任何ISO字符編碼的字形),從而使PDF很難轉換爲文本。沒有「單詞」或「段落」的概念。例如,兩列文檔可能是分析文本的噩夢。
對於你的問題的第二部分,我有很好的效果使用xpdf的3.02版本,固定Xref.cc後(請XRef::okToPrint()
,XRef::okToChange()
,XRef::okToCopy()
和XRef::okToAddNotes()
都返回gTrue
)。這是處理鎖定的文件,而不是加密的文件(還有其他的utils)。
相關問題
- 1. 位圖上的XY座標
- 2. 圖片xy座標
- 3. 座標位置圖像Android
- 4. Pdfbox PDFTextStripperByArea座標移位
- 5. 使用加速度計讀取android手機的xy座標
- 6. IPHONE - 使用XY座標在UIView中繪製位置iphone SDK
- 7. 選定的文本,XY座標
- 8. PDFBox - 座標系
- 9. 如何從圖像文件獲取地理位置(座標)?
- 10. Android:如何獲取圖像/ ImageView中的xy座標?
- 11. 如何從大框(div)中獲取圖像的xy座標=(0,0)?
- 12. 使用節點的XY座標設置(igraph)圖形
- 13. 極座標位圖圖像
- 14. 凸閱讀Python中的XY座標
- 15. 使用jQuery重置圖像的位置並保存座標Draggable
- 16. Shape文件:XY座標和經度/緯度座標
- 17. 如何使用jquery獲取圖像的座標xy後顯示彈出消息?
- 18. 獲取圖像佔位符的座標
- 19. Opencv單應性從像素xy座標找到全局xy座標
- 20. Flex Sprite xy座標
- 21. pdfbox獲取開始文本部分(BT ET)座標
- 22. pdfbox PDFBox 2.0.0獲取字段位置
- 23. 使用位置座標值
- 24. 記錄像素onclick的XY座標
- 25. 無法使用PDFBOX讀取PDF文件
- 26. Android - 獲取GPS座標和位置
- 27. 從座標獲取位置?
- 28. 如何從Matlab中的圖像獲取onclick座標像素值和位置?
- 29. 使用pdfbox從PDF中提取圖像
- 30. 如何使用XY座標將標記添加到ArcGIS地圖