2016-09-23 7 views
1

私は最近、Xpdfの一部であるpdftotextコマンドを使用してテキストベースのPDFをテキストに変換できるようにLinuxサーバーを設定しました。画像ベースのPDFをテキストに変換するにはgs( Ghostscript)とtesseractコマンドです。PHPで "text" PDFと "image" PDFを区別する方法は?

どちらのソリューションも、PDFがテキストベースであるのか画像ベースであるのかが分かっていればうまく機能します。しかし、多くのPDFをテキストに変換するプロセスを自動化するためには、PDFがテキストベースであるかイメージベースであるかを知る必要があるため、PDFで実行するプロセスのセットを知る必要があります。

PHPでPDFを分析して、それがテキストベースであるかイメージベースであるかを判断して、XpdfまたはGhostscript/Tesseractを使用するかどうかを知る方法はありますか?

+3

両方の組み合わせがあればどうなりますか? – cmorrissey

+0

そのようなことが起こった場合、Xpdfの 'pdftotext'をファイル上で実行すれば十分でしょうか?いずれにしても、2つまたは3つの異なるタイプのPDFがあるかどうかにかかわらず、それらを区別してテキストを処理する方法を知る必要があります。ありがとう。 – HartleySan

+0

私はPDFに対して両方のスクリプトを実行すると、出力を比較する必要があります。 – cmorrissey

答えて

0

出力を比較し、OCR実行の結果テキストがXpdfの出力と同じであるかどうかを判断することは、簡単なクエストです。 xpdfでテキストを抽出できるOCRable PDFテキスト(例えば、非常に小さい文字)の場合、不必要な不平等がたくさんあります。

PDFから画像を抽出し、完全なPDFではなくOCRだけを抽出することをお勧めします。この方法で

  • あなたはテキスト[1]を比較する必要はありません。
  • イメージがPDFにどのように含まれているかによって、より良いOCR結果が得られる場合もあります。
  • また、クリアテキストとして含まれるテキストを不必要にOCRするのを避けることができます。

すでにxpdfを使用しているので、pdfimages -allを使用してイメージを抽出できます。

[1]これは100%正確ではありません.PDFは、画像の後ろにOCRされたテキストレイヤーが既に存在するサンドイッチPDFである可能性があります。

+0

申し訳ありませんが、あなたが私が推奨していることについては混乱しています。すべてのPDFを画像に変換してから、無差別にOCRするか、他に何かを推薦する必要がありますか? Tesseractを使用したOCRプロセスは非常に遅いので、可能な限り多くのPDFをOCRすることは避けてください。 – HartleySan

+0

@HartleySan私は、埋め込まれた画像を抽出するツールを使用し、それらのツールのみでOCRツールを実行することを意味します。私は元の答えにいくつかの詳細を追加しました。 – tobltobs

関連する問題