7

請求書と請求書のPDFファイルからテキストを抽出する必要があります

ファイルのレイアウトは複雑になる可能性がありますが、ほとんどがテーブルで埋め尽くされています。

私は、pdf 形式に関する記事をすでに数十本読んだことがあります。私たちの脳がそれを理解するのはどれほど簡単で、機械がその構造を理解するのはどれほど難しいかということです。

また、Python の pdfminer やいくつかの Java ツールなどのいくつかのツールをダウンロードしました。LA-PDBtextなどのルール ベースのレイアウト抽出を備えたツールもあります。これらはすべて優れたライブラリであり、最後のステップを残します。

Adobe には exportPdf というオンライン サービスもありますが、カスタマイズすることはできません。

要するに、たとえば、構造化された pdf ファイルからテキストを抽出して XML に変換するには、ある程度の手作業が必要であることを理解しています。

From Data Extractorも見つけました。これは、適切なマニュアルを見つけるのが難しく、Windows でのみ実行されますが、抽出ルールを設定する機能を備えた非無料ツールです。

これらのファイルを画像に変換してtesseract-ocrを試すこともできると思いましたが、これ以上時間を費やす前に、ここでアドバイスを求めることにしました。

どなたか経験のある方、ヒントを頂けたら大変助かります。

4

2 に答える 2

7

私は多くの PDF 抽出を行ってきましたが、開始するのが骨の折れるプロセスになる可能性があることをすでに発見したので確認できます。理解しておくべき重要なことの 1 つは、PDF 内には「表」の概念はなく、たまたま線で囲まれたテキストに過ぎないということです。また、PDF コード内のテキストの線形順序が実際に印刷時の視覚的順序と一致するという保証はありません。つまり、「hello world」がその順序で書かれているという保証はありません。draw 'word' at coord 20 then draw 'hello' at coord 10. ほとんどの PDF 作成者はこれを行いませんが、それでも保証はありません。PDF クリエーター (InDesign、Illustrator など) がより創造的であるほど、テキストを取得するのが難しくなる可能性が高くなります。実際、デザイナーがフォントをいじり始めると、一部のプログラムは単語を一度に 1 文字ずつ実際に出力し、そのたびにフォントをわずかに変更することがあります。

そうは言っても、最初に見た LA-PDFText をお勧めします。ルールを作成できる検出モード(ブロック化) で実行できます。もう Java をインストールしていないのでテストできませんが、非常に有望なようです。

2 つ目の A-PDF Form Data Extractor は、実際の PDF フォームでのみ機能します。このような場合は、iText/iTextSharp などのオープン ソース ソリューションを使用することをお勧めします。

最後のOCRは私をうんざりさせます。これらのフープを通過することで、PDF を解析するよりも優れたテキスト表現が得られるとは想像できません。しかし、繰り返しになりますが、PDF は視覚的な形式なので、そうなるかもしれません。

個人的には、この種のことにはiText/iTextSharpを使用しますが、難しい方法で物事を行うことも好きです。

于 2012-04-17T13:35:03.890 に答える