PDFからテキストと画像を抽出するためのライブラリ/APIを推奨できる人はいますか?ドキュメントの既知の領域に含まれているテキストを取得できる必要があるため、APIはページ上の各要素の位置情報を提供する必要があります。
xml
そのデータをまたはjson
フォーマットで出力したいと思います。現在、かなり良いように見えるPdfTextStreamを調べていますが、他の人々の経験や提案を聞きたいと思います。
プログラムでPDFからテキストを抽出するための代替手段(商用または無料)はありますか?
PDFからテキストと画像を抽出するためのライブラリ/APIを推奨できる人はいますか?ドキュメントの既知の領域に含まれているテキストを取得できる必要があるため、APIはページ上の各要素の位置情報を提供する必要があります。
xml
そのデータをまたはjson
フォーマットで出力したいと思います。現在、かなり良いように見えるPdfTextStreamを調べていますが、他の人々の経験や提案を聞きたいと思います。
プログラムでPDFからテキストを抽出するための代替手段(商用または無料)はありますか?
効率的なコマンド ライン ツール、オープン ソース、無料、Linux と Windows の両方で利用可能: 単に pdftotext という名前です。このツールは xpdf ライブラリの一部です。
今日から私はそれを知っています:PDFからのテキスト抽出のための最良のものはTET、テキスト抽出ツールキットです。TETは、PDFlib.com製品ファミリーの一部です。
PDFlib.comはThomasMerzの会社です。彼の名前がわからない場合:ThomasMerzは「PostScriptandPDFBible」の著者です。
TETの最初の化身は図書館です。これで、ページ上のすべての要素に関する位置情報を含め、Budda006が望んでいたすべてのことを実行できる可能性があります。ああ、それはまた画像を抽出することができます。断片化された画像を再結合します。
pdflib.comは、このテクノロジーのもう1つの化身である、Acrobat用のTETプラグインも提供しています。そして3番目の化身はPDFlibTETiFilterです。これは、ユーザーデスクトップ用のスタンドアロンツールです。これらは両方とも(ビールのように)無料で、非営利目的で使用できます。
そして、それは本当に強力です。アドビ独自のテキスト抽出よりもはるかに優れています。他のツール(Adobeを含む)がゴミだけを吐き出すテキストを抽出しました。
デスクトップスタンドアロンツールをテストしたところ、彼らのWebページに書かれていることは真実です。非常に優れたコマンドラインがあります。私の「問題のある」PDFテストファイルのいくつかは、ツールが完全に満足のいくように処理しました。
これからは、洗練された挑戦的なPDFテキスト抽出要件すべてに対する私の推奨事項になります。
TETは単に素晴らしいです。テーブルを検出します。テーブル内では、複数の列にまたがるセルを識別します。テーブルの行と各テーブルセルの内容を個別に識別します。ハイフンを非常にうまく処理します。ハイフンを削除し、完全な単語を復元します。非ASCII言語(CJK、アラビア語、ヘブライ語を含む)をサポートします。合字に遭遇すると、元の文字を復元します...
試してみる。
Python の場合、PDFMinerとpyPDF2があります。これらの詳細については、PDF をテキストに変換するための Python モジュール を参照してください。
PdfTextStream (あなたが見ていると言っていました) は、シングル スレッド アプリケーションで無料になりました。私の意見では、その品質は他のライブラリよりもはるかに優れています (特にファンキーな埋め込みフォントなど)。
Java と C# で利用できます。
または、オープンソースのApache PDFBoxをご覧ください。
ここでのコメントの 1 つは、Windows で gs を使用していました。Linux/OSX でも、次の構文である程度成功しました。
gs \
-q \
-dNODISPLAY \
-dSAFER \
-dDELAYBIND \
-dWRITESYSTEMDICT \
-dSIMPLE \
-f ps2ascii.ps \
"${input}" \
-dQUIET \
-c quit
後者は1行あたり1文字を出力するため、dSIMPLE
代わりに使用しました。dCOMPLEX
Docotic.Pdf ライブラリを使用して、PDFファイルからテキストをプレーン テキストとして、または各チャンクの座標を含むテキスト チャンクのコレクションとして抽出できます。
Docotic.Pdf を使用して、PDF から画像を抽出することもできます。
免責事項: 私はビット ミラクルで働いています。
質問は具体的にはPDF から XML としてデータを取得するための代替ツールに関するものであるため、これを正確に行うことができる商用ツール「ByteScout PDF Extractor SDK」を見てみることに興味があるかもしれません: XML として PDF からテキストを抽出し、位置データ (x,y) とフォント情報:
ソース PDF のテキスト:
Products | Units | Price
出力 XML:
<row>
<column>
<text fontName="Arial" fontSize="11.0" fontStyle="Bold" x="212" y="126" width="47" height="11">Products</text>
</column>
<column>
<text fontName="Arial" fontSize="11.0" fontStyle="Bold" x="428" y="126" width="27" height="11">Units</text>
</column>
<column>
<text fontName="Arial" fontSize="11.0" fontStyle="Bold" x="503" y="126" width="26" height="11">Price</text>
</column>
</row>
PS: さらに、テキストをテーブルベースの構造に分割します。
開示:私はByteScoutで働いています
このトピックはかなり古いことは知っていますが、この必要性はまだ生きています。多くのドキュメント、フォーラム、スクリプトを読み、圧縮および非圧縮 pdf をサポートする新しい高度なドキュメントを作成しました。
https://gist.github.com/smalot/6183152
場合によっては、セキュリティ上の理由からコマンド ラインが禁止されています。したがって、ネイティブ PHP クラスは多くのニーズに対応できます。
それが誰にも役立つことを願っています
私が現在考えることができる最高のもの (「単純な」ツールのリスト内) は、Ghostscript (現在のバージョンは v.8.71) と PostScript ユーティリティ プログラムps2ascii.ps
です。Ghostscript のlib
サブディレクトリに同梱されています。これを試してください(Windowsの場合):
gswin32c.exe ^
-q ^
-sFONTPATH=c:/windows/fonts ^
-dNODISPLAY ^
-dSAFER ^
-dDELAYBIND ^
-dWRITESYSTEMDICT ^
-dCOMPLEX ^
-f ps2ascii.ps ^
-dFirstPage=3 ^
-dLastPage=7 ^
input.pdf ^
-dQUIET ^
-c quit
このコマンドは、 の 3 ~ 7 ページを処理しますinput.pdf
。ファイル自体のコメントを読んでps2ascii.ps
、「奇妙な」数字と追加情報が何を意味するかを確認してください (文字列、位置、幅、色、画像、四角形、フォント、改ページなどを示しています)。「単純な」テキスト出力を取得するには、その-dCOMPLEX
部分をに置き換えます-dSIMPLE
。
画像抽出用の pdfimages は、Linux または Windows (win32) 用の無料のコマンド ライン ツールです。
pdfimages: Portable Document Format ( PDF ) ファイルから画像を抽出して保存する
Apache pdfbox にはこの機能があります - テキスト部分は次の場所で説明されています:
http://pdfbox.apache.org/apidocs/org/apache/pdfbox/util/PDFTextStripper.html
実装例については、 https://github.com/WolfgangFahl/pdfindexerを参照してください。
テストケース TestPdfIndexer.testExtracting は、それがどのように機能するかを示しています
QuickPDF は、手頃な価格でやりたいことができる合理的なライブラリのようです。
http://www.quickpdflibrary.com/ - 30 日間の試用版があります。
私の Macintosh システムでは、「Adobe Reader」がかなり良い仕事をすることがわかりました。「Adobe Reader.app」を指すデスクトップにエイリアスを作成しました。エイリアスにpdfファイルをドロップするだけで、Adobe Readerでアクティブなドキュメントになり、ファイルメニューから、 「テキストとして保存...」を選択し、名前と保存場所を指定して、「保存」をクリックすれば完了です。