2011-06-28 18 views
1

私はPDFを持っており、そこに含まれるテキストを抽出したいと思います。私はいくつかの異なるPDFライブラリを試しました。それらはすべて基本的に同じ結果を返します。文字通り何百もの単語を含む2ページの文書からテキストを抽出すると、ヘッダーからダース程度の単語だけが返されます。要素がテキストかどうかをPDFで調べるにはどうすればよいですか?

私の後のテキストが実際にテキストかテキストのラスタイメージかどうかを確認する方法はありますか?私はFirebugの "Inspect Element"の行に沿って何かを考えていますが、現時点では、私が実際に何を見ているかを示すあらゆる解決策をとるでしょう。

このプロジェクトは、実際にOCRの使用を正当化するものではありません。また、ファイルのジェネレータが第三者であるため、PDFでフィールドを使用するという簡単な解決方法はありません。

+0

サードパーティからロックされたPDFを受け取りますか? –

+0

@ DJ Quimby - いいえ、ロックされたPDFではありません – DenaliHardtail

+0

アクロバットリーダーで開くと、テキストをコピーして貼り付けることができますか?そうでなければ、テキストではありません。または、あなたはプログラムでそれをどうやって行うのですか? –

答えて

1

Acrobat/Readerがテキストを選択できる場合は、テキストです。

は、あなたのライブラリーが問題のテキストを見つけることができない場合がありますな理由:悪いフォントやエンコーディング/

  1. コンプレックス。アドビはゴミ情報を非常に寛容にすることができます。
  2. テキストはページの内容ではなく注釈の中にある可能性があります。代わりに注釈配列を調べる必要がある場合は、プログラムがコンテンツストリームを解析するかどうかは関係ありません。
  3. 特定のライブラリの名前を指定していないため、使用しているライブラリがXObjectフォームを参照していない可能性があります。リモートで成熟したAPIでさえそうは考えにくいですが、見知らぬことが起こっています。

Readerからコピー/パスタを取得することができれば、そのルートに行ってください。

0

このサイトをチェックしてください。役に立つコードスニペットが含まれている可能性があります。 http://www.codeproject.com/KB/cs/PDFToText.aspx

+0

提案していただきありがとうございます。同じ結果が得られます。フッタテキストだけです。 – DenaliHardtail

1

Amyuni PDF Creator .Netを試しましたか?ページの指定された矩形領域からすべてのコンポーネントを列挙し、定義済みの型リストからその型を検査することができます。あなたは試用版を使用して簡単なテストやテキスト抽出のために、次のサンプルコードを実行することができます:

// open a PDF file 
axPDFCreactiveX1.Open(System.IO.Directory.GetCurrentDirectory()+"\\sampleBookmarks.pdf", ""); 
axPDFCreactiveX1.Refresh(); 
String text = axPDFCreactiveX1.GetRawPageText (1); 
MessageBox.Show (text); 

さらに、それはあなたがそれを必要とする場合にはTesseract OCRintegrationを提供します。

免責事項:私はこの製品の開発チームに所属しています。

関連する問題