私は現在PDFボックスを使用してPDFを解析しており、フォント(太字、サイズなど)やフォントの場所などのテキストに関するデータを取得する方法を理解しようとしています。
助言がありますか?
(見つけにくい)PDFBoxドキュメントを調べた後、この小さな宝石を見つけました。
どうやら、例の1つは、あなたが求めたすべてを行う方法を正確に示しています。基本的に、メソッドをサブクラス化PdfTextStripper
してオーバーライドしますprocessTextPosition
。TextPosition
そこで、必要な情報を照会します。
今後の参考のために、ここで javaDoc を見つけることができます: http://pdfbox.apache.org/apidocs/index.html
編集 2018-04-02 : 元のリンクは無効になっていますが、例はSVN リポジトリのこちらにあります。
PDF からのテキスト抽出に最適なものの1 つは、テキスト抽出ツールキットであるTETです。TET は PDFlib.com 製品ファミリーの一部です。
PDFlib.com は Thomas Merz ( 「PostScript and PDF Bible」の著者) の会社です。
TET の最初の化身は図書館です。これはおそらく、ページ上の各テキスト要素の位置情報を含め、必要なことすべてを行うことができます. ああ、それは画像を抽出することもできます。バラバラに断片化された画像を再結合+マージします。
pdflib.com では、この技術のもう 1 つの化身であるAcrobat 用の TET プラグインも提供しています。もちろん、これを利用するには Acrobat も必要です。
そして 3 番目の化身はPDFlib TET iFilterです。これは、ユーザー ワークステーション用のスタンドアロン ツールです。どちらも(ビールのように)私的な非営利目的での使用は無料です。
最後に、TET にはコマンドライン インターフェースも付属しています。
TETは本当に強力です。Adobe独自のテキスト抽出よりもはるかに優れています。他のツール (Adobe を含む) がゴミのみを吐き出すテキストを抽出しました。
数か月前、私は彼らのデスクトップ スタンドアロン ツールをテストしましたが、彼らのウェブページに書かれていることは真実です。非常に優れたコマンドラインがあります。私の「問題のある」PDF テスト ファイルのいくつかは、このツールで完全に満足のいくように処理されました。
これは、高度で困難なすべての PDF テキスト抽出要件に対する私の推奨事項です。
TETは本当に素晴らしいです。テーブルを検出します。テーブル内では、複数の列にまたがるセルを識別します。表の行と各表のセルの内容を個別に識別します。ハイフネーションを非常にうまく処理します。ハイフンを削除し、完全な単語を復元します。非 ASCII 言語 (CJK、アラビア語、ヘブライ語を含む) をサポートしています。合字に遭遇すると、元の文字を復元します...
試してみる。
Quick PDF Libraryの抽出オプション 3 または 4 を指定したGetPageText関数は、テキスト (個々の単語またはテキストの一部) と関連するフォント名、テキストの色、テキストのサイズ、および座標を含む、選択したページの CSV 文字列を返します。ページで。
注: これは商用ライブラリであり、私はそれを販売する会社で働いています。