問題タブ [pdf-extraction]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - PDFフォームフィールドをxmlに自動的にエクスポートする方法
pdf
フォーム フィールドを含むファイルがあり、データを自動的にファイルにエクスポートする必要がありxml
ます。テスト用に作成したサンプル フォームの画面を次に示します。
注: Acrobat Professional をクリックして手動Tools > Form > Export Form Data
でエクスポートし、最終的にファイル出力の xml 拡張子を選択すると、うまく機能します。これは、手動でエクスポートしたときに得られる結果です。
ただし、Pythonスクリプト、Java実装、またはコマンドラインツールなどを使用して自動化する必要があります。フォームフィールドデータをエクスポートするために使用できるライブラリまたはツールのアイデアはありますxml
か? ツールまたはライブラリは、ワークフローに統合できるオープン ソースである必要があります。
私はすでに python ライブラリを試しました。これは、pdf ファイルのpdfminer
静的部分 ( Static form header
、First name:
および など)をエクスポートするのに役立ちました。Last name:
first_name
last_name
編集:ここから sample.pdf ファイルを自由にダウンロードしてください。
pdf - PDF 文書のテキスト構造を識別するのが非常に難しい場合、PDF リーダーはどのようにしてそれをうまく行うのでしょうか?
多数の PDF ドキュメントからテキストを抽出する単純なコンソール アプリケーションまたは PowerShell スクリプトを作成しようとしています。これを行うためのライブラリと CLI ツールがいくつかありますが、ドキュメント構造を確実に識別できるものはありません。特に、テキスト列の認識に関心があります。非常に高価な PDFLib TET ツールでさえ、隣接する 2 つのテキスト列の内容を頻繁にごちゃ混ぜにします。
PDF 形式には列や単語の概念がないことがよく指摘されます。SOに関する同様の質問に対するいくつかの回答で、これについて言及されています。この問題は非常に大きいため、学術研究の必要性さえあります。このジャーナル記事は次のように述べています。
PDF ファイル内のすべてのデータ オブジェクトは、一連の演算子として、視覚的に表現されます。一般に、トークン、行、列などの高レベルのテキスト単位に関する情報 (そのような単位間の境界に関する情報) は伝達されません。空白を介して暗黙的にのみ利用可能
したがって、私が試したすべての抽出ツール (iTextSharp、PDFLib TET、および Python PDFMiner) は、テキスト列の境界を認識できませんでした。これらのツールのうち、PDFLib TET が最高のパフォーマンスを発揮します。
ただし、非常に軽量でオープンソースの PDF リーダーである SumatraPDF や、同様の他の多くの PDF リーダーは、列とテキスト領域を完全に識別できます。これらのアプリケーションのいずれかでドキュメントを開き、ページ上のすべてのテキスト (または CTRL + A でドキュメント全体) を選択してコピーし、テキスト ファイルに貼り付けると、テキストはほとんど問題なく正しい順序でレンダリングされます。フッターとヘッダーのテキストが列の 1 つに混在することがあります。
そこで私の質問は、これらのアプリケーションは、一見非常に難しいように見えること (PDFLib のような高価なツールであっても) をどのように行うことができるのでしょうか?
編集 2014 年 3 月 31 日: PDFBox は iTextSharp よりもテキスト抽出がはるかに優れており (特注の Strategy 実装にもかかわらず)、PDFLib TET は PDFBox よりわずかに優れていることがわかりましたが、かなり高価です。Python PDFMiner は絶望的です。私が見た最高の結果は、Google からのものです。PDF (一度に 2GB) を Google ドライブにアップロードし、テキストとしてダウンロードできます。これが私がやっていることです。PDF を 10 ページのファイルに分割し (Google は最初の 10 ページのみを変換します)、ダウンロード後にそれらをつなぎ合わせる小さなユーティリティを作成しました。
編集 2014 年 4 月 7 日。最後のキャンセル。最良の抽出は、MS Word によって達成されます。これは、Acrobat Pro で自動化できます ([ツール] > [アクション ウィザード] > [新しいアクションの作成])。テキストへの単語変換は、.NET OpenXml ライブラリを使用して自動化できます。これは、非常にきれいに抽出 (docx から txt へ) を行うクラスです。私の最初のテストでは、ドキュメント構造に関しては MS Word 変換の方がかなり正確であることがわかりましたが、プレーン テキストに変換すると、これはそれほど重要ではありません。
pdf - PDF からのハイパーリンク検出
URL と mailto の両方の形式でハイパーリンクを含む PDF があります。現在、座標、リンクタイプ、宛先アドレスなどのハイパーリンクメタ情報を PDF から抽出する方法またはツール (サードパーティの場合があります) はありますか? どんな助けでも大歓迎です。
私はすでに iText と PDFBox を試しましたが、大きな成功はありませんでした。サードパーティのソフトウェアでさえ、希望する出力を提供していません。
iTextを使用してJavaで次のコードを試しました
ruby - 学術論文から参照を抽出するためのRUBY pdf-extract gemが機能しませんか?
私はルビーとそのpdf-extract gemの両方の初心者です。64 ビット用の ruby をインストールし、関連する開発キットをインストールした後、以下のコードで pdf-extract をインストールしました。
gem install pdf-extract
Web サイトhttps://github.com/CrossRef/pdfextractの簡単な例を確認すると、
私が試してみました
pdf-extract extract --references C:/dnm1.pdf
上記のコードを実行すると、次のようなエラーが発生します。
C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/commander/runner.rb: 384:
block in require_program': program version required (Commander::Runner:: CommandError) from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/command er/runner.rb:383:in
C:/Ruby200-x64/lib/ruby/ から「それぞれ」 gems/2.0.0/gems/commander-4.2.0/lib/command er/runner.rb:383:require_program' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/command er/runner.rb:51:in
実行中!」from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/command er/delegates.rb:8:inrun!' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/commander-4.2.0/lib/command er/import.rb:10:in
block in ' C:/Ruby200-x64/lib/ ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:require ': 126: The specified module could not be found. - C:/Ruby200-x64/lib/ruby/gem s/2.0.0/gems/libsvm-ruby-swig-0.4.0/ext/libsvm.so (LoadError) from C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:5 5:in
require から C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/libsvm-ruby-swig-0.4.0/lib から/ svm.rb:1:<top (required)>' from C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:5 5:in
require' from C:/Ruby200-x64/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:5 5:inrequire' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/lib/refer ences/score.rb:1:in
' from C:/Ruby200-x64/lib/ruby /gems/2.0.0/gems/pdf-extract-0.1.1/lib/references/references.rb:3:inrequire_relative' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/lib/refer ences/references.rb:3:in
' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/lib/pdf-e xtract.rb:10:inrequire_relative' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/lib/pdf-e xtract.rb:10:in
' from C:/Ruby200-x64/ lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/bin/pdf-e xtract:5:inrequire_relative' from C:/Ruby200-x64/lib/ruby/gems/2.0.0/gems/pdf-extract-0.1.1/bin/pdf-e xtract:5:in
'from C:/Ruby200-x64/bin/pdf-extract:23:in load from C:/Ruby200-x64/bin/pdf-extract:23:in main
Web で pdf-extract 関連の問題を確認しましたが、役立つ情報はあまり見つかりませんでした。私は何を間違っていますか?
pdfbox - PDFファイルから段落を抽出してその位置を保存する方法は?
PDFBox ライブラリを使用して PDF ファイルのコンテンツを抽出します。コンテンツは段落ごとに処理する必要があり、各段落について、フォローアップ処理のためにその位置が必要です。次のコードを使用して、入力 PDF のコンテンツ全体を抽出できます。
2 つの問題があります。
- 段落ごとにコンテンツを抽出する方法がわかりません。
- 後続処理 (ハイライトなど) のために段落の位置を保存する方法がわかりません。
ありがとう。
itext - テキストの実際のフォントを itext で取得できませんか?
PDFからテキストを抽出しようとしましたが、itextのおかげでテキスト全体を抽出できます。ただし、見出しのフォントを検出しようとしています。この情報を使用して、2 つの特定の見出しの間のテキストのみを抽出することを計画しています。たとえば、科学論文では、「導入」部分のみを抽出したいと考えています。これを行うには、次のリンクに適用しました。
iTextを使用してPDFファイルからテキストフォントを取得する
ただし、手動で確認すると、すべての単語に同じフォント タイプが表示されるようです (Word 文書にコピー ペーストすると、異なるフォントが表示されます)。これが私が書いたコードです。
そして、抽出戦略のために作成したクラス。
このコードの結果として、このような結果が得られます。いずれもフォントタイプ 4 です。
...