左、上、幅、高さのパラメータで指定された指定された長方形の領域からPDFテキストを抽出するのに役立つ(できれば無料の)ライブラリを探しています。Linux システム上の PHP で使用できるはずです。そのようなライブラリと実用的な例を提案していただけますか?
1 に答える
コマンドライン
PHP は、外部のコマンドライン ツールも使用できます。したがって、これがあなたのオプションである場合...
コマンドラインを使用する場合pdftotext
-ただし、XPDF バージョンではなく Poppler バージョンのみです。-- 次のオプションの CLI パラメータがあります。
-x : トリミング領域の左上隅の x 座標 -y : トリミング領域の左上隅の y 座標 -W : トリミング領域の幅 (ピクセル単位) (デフォルトは 0) -H : トリミング領域の高さ (ピクセル単位)
実際の例:
まず、Ghostscript を使用して、Bash の man ページから PDF を作成しましょう。
man -t bash | gs -o man-bash.pdf -sDEVICE=pdfwrite -
次に、そこからテキストを抽出しましょう。幅 200、高さ 100、左上隅(200,200)
{ここでは、左上から に配置されていると計算します(0,0)
}を使用します。
kp@mbp:~$ pdftotext -f 1 -l 1 -x 200 -y 200 -W 200 -H 100 man-bash.pdf - Shell および Ut の適合実装 および 1003.1)。Bash は POS として構成できます 説明に記載されているacterシェルオプション シェルが呼び出されます。さらに、bashは解釈します オプションが存在する場合、コマンドは s から読み取られます
-f
(最初のページの場合) と(最後のページの場合) の使用法に注意してください。これを使用しない場合は、複数ページの PDF の各ページのそれぞれのテキスト領域が印刷されます。-l
pdftotext
このスクリーンショットと比較してください:
期待どおりに機能したようですね。
としょうかん
ポップラー
Poppler はライブラリとしても使用できます。しかし、私はこのアプローチの経験がありません (PHP の経験もあまりありません)。
TET
要件を満たす無料のライブラリが見つからない場合は、PDF からのテキスト抽出に最適なものであるTET、テキスト抽出ツールキット を参照してください。TET はPDFlib.com製品ファミリーの一部です。
PDFlib.com は Thomas Merz の会社です。彼の名前がわからない場合: Thomas Merz は、「PostScript and PDF Bible」の著者の 1 人です。
TET の最初の化身は図書館です。これはおそらく、ページ上のすべての要素の位置情報を含め、あなたが望んでいたすべてのことを行うことができます.
pdflib.com では、この技術のもう 1 つの化身であるAcrobat 用の TET プラグインも提供しています。そして 3 番目の化身はPDFlib TET iFilterです。これは、Windows デスクトップ用のスタンドアロン ツールです。これらはどちらも(ビールのように)無料で、個人的、非営利目的で使用できます.
TET は、Adobe 独自のテキスト抽出よりもはるかに優れています。他のツール (Adobe を含む) がゴミを吐き出すだけのテキストを抽出しました。
試してみる。