私は、暗号化されたPDFファイルを読み込み、テキスト、画像、およびその位置(x、y座標)を含むページ単位でファイルの内容を抽出するJavaプログラムを実行中です。ファイル。今私はこの目的のためにPDFBoxを使用しており、テキストと画像を取得しています。しかし、私はテキストの位置と画像の位置を取得することができませんでした。また、暗号化されたPDFファイルを読むときにいくつかの問題があります。PDFBoxを使用してテキストと画像の位置(xy座標)を読み取る
答えて
org.apache.pdfbox.examples.util.PrintTextLocations
をご覧ください。私はこれをかなり使用しました。要素のレイアウトやPDF文書の枠線の解析については非常に役立ちます。また、白いインクで印刷された、または印刷可能な領域の外に印刷されたアイテムを明らかにしました(恐らくドキュメントの透かし、または著者が目立たない「忘れた」アイテム)。
使用例:
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
...
あなたは簡単に要素の位置、境界ボックス、および「流れ」をプロットするために解析し、使用することができます。
java -cp app/target/pdfbox-app-1.5.0.jar org.apache.pdfbox.examples.util.PrintTextLocations ~/tmp/mydoc.pdf >~/tmp/out-text-locations.txt
あなたはそのような何かを得るでしょう(すべての要素を通る軌跡)などを含む。すでに気づいているように、PDFをテキストに変換することはほとんど不可能です。それは実際にマークアップ言語ではなく、単にグラフィック記述フォーマット(すなわち、プリンタまたはスクリーン用)です。 「Hello world」を印刷するPDFを簡単に作成することはできますが、それは文字の位置をランダムにジャンプします(選択する場合は、任意のISO charエンコーディングとは異なるグリフを使用します)。 「単語」や「段落」という概念はありません。たとえば、2列の文書は、テキストを解析する際の悪夢となります。
あなたの質問の後半部分については、私は(XRef::okToPrint()
、XRef::okToChange()
、XRef::okToCopy()
とXRef::okToAddNotes()
すべてがgTrue
を返すように)Xref.ccを固定した後、Xpdfのバージョン3.02を使用して良い結果を持っていました。それは、暗号化されたものではなく、ロックされたドキュメントを扱うことです(そこに他のユーティリティがあります)。
- 1. クリックして画像のボックスのマウス座標を読み取る
- 2. Pythonを使用して画面上のテキストのxy座標を見つける
- 3. キャンバス内の画像の座標xyを取得する方法
- 4. 位置座標値を使用して
- 5. C#座標を使用して画像を切り取る
- 6. Abaqus/Pythonスクリプトを使用して複数のExcelシートからXY座標を読み取る
- 7. JQueryを使用して、x座標とy座標を別の画像の上に配置するアイコン
- 8. コア位置を使用して100mのラウンドウィングの座標と計算を取得
- 9. イメージxy座標
- 10. Pythonでxy座標を使用してカラーマップをプロットする
- 11. 座標を使用したクロップ画像
- 12. PDFBox - 座標系
- 13. FCMを使用して位置座標を送信する
- 14. ワンドとキャプションを使用してテキスト座標を取得する
- 15. pdfbox PDFBox 2.0.0フィールドの位置を取得
- 16. OpenGL - マウスの位置座標を取得
- 17. ブラックベリーのメイン画面のボタンフィールドのXY座標を取得
- 18. PDFBoxを使用して特定のページからテキストを読み取る
- 19. 位置画像とテキスト
- 20. JavaScriptのx座標とy座標のキャレット位置を取得する
- 21. leaflet.jsカスタムマップ内のxy座標の開始位置を変更する
- 22. UIButtonから位置座標を取得
- 23. SceneKit - 画面座標の位置を取得
- 24. openCVを使用して画像の座標を入力する
- 25. 座標対位置
- 26. JPEG画像を読み込んで画像座標を計算する
- 27. Opencvホモグラフィでピクセルxy座標からグローバルxy座標を見つける
- 28. jqueryまたはjavascriptを使用して画像の座標を取得する
- 29. X座標とY座標を使用して要素を配置する
- 30. Javascriptの相対座標を使用した位置の圧縮