2016-11-15 17 views
1

私はPDFファイルからテキストを抽出しようとしています:http://www.filedropper.com/copy_1、しかし、私はページからのテキストの半分以下を取得します。 私はiTextSharpを使用しています:PDF抽出が完了しません

は私も代わりに、デフォルトのLocationTextExtractionStrategyのSimpleTextExtractionStrategyを使用していた
PdfReader reader = new PdfReader(file); 
string currentText = PdfTextExtractor.GetTextFromPage(reader, 1); 

:ファイルは、もともとマイクロソフトレポートサービスから生成された

PdfTextExtractor.GetTextFromPage(reader, 1, new SimpleTextExtractionStrategy()) 

(これに私が持っていません私はテキスト抽出をテストするために1ページを抽出しました。

誰でも手伝ってもらえますか?

+3

PDFには、PDF仕様に従ってテキスト抽出に必要な情報が含まれていません。あなたが紛失しているテキストセクションについては、Adobe Readerからコピー&ペーストを試してください。失敗しても表示されます。 Microsoft Reporting Serviceは、テキスト抽出には不十分なPDFを作成する長い歴史を持っています。 – mkl

+2

さらに、コードを投稿する場合は、賢明な方法で行ってください。あなたが投稿したコードは、PDFリーダーと何も使用されていない抽出戦略を作成し、テキスト抽出プログラムは、デフォルトの抽出戦略を使用していくつかのスタンパーのリーダーから抽出します... – mkl

+0

答えをありがとう。私は、あなたが尋ねたように、無意味なコードを修正しました。 アクロバットリーダーが表示する情報(数値など)を含むことはできませんか? – Hefass

答えて

-1

はこのお試しください: -

PdfReader reader = new PdfReader(file); 
StringBuilder currentText= new StringBuilder(); 
for (int i= 1; i <= reader.NumberOfPages; i++) 
{ 
    currentText.Append(PdfTextExtractor.GetTextFromPage(reader, i)); 
} 

をして、 "currentText" にあなたが好きな動作を行います。

+0

PDFには1ページしかありません。ドキュメント内のすべてのページをループすることは役に立ちません。 @mklが示すように、これは「Garbage In、Garbage Out」の問題です。Adobe Readerでテキストをコピー/ペーストすることさえできません。 –

+0

あなたの提案は事実上最初のものを見るのではなく、すべてのPDFページを反復することです。 OPのサンプル・ドキュメントには1ページしかないので、これは少しの違いしかありません。しかし、OPのコードとは対照的に、あなたのコードは少なくとも一貫しています... – mkl

+0

あなたは間違いなく正しいです。実際には、私は.pdfファイル自体をチェックしていません。彼が今まで行ってきたことのためのより良いコードを投稿しました。 – Nitin

関連する問題