2010-11-28 20 views
5

特定の矩形領域内のPDF文書からテキストを抽出する必要があります。ワークフローは次のとおりです。まずpdfはjpg画像に変換されます。次に、選択矩形を画像の上に描画します。それから私は何とかその選択領域内のpdf docからすべてのテキストを抽出する必要があります。どのようなフリーウェアのPDFファイルのlibs C#からアクセスするために使用する任意の提案?どのように特定の矩形領域内のPDF文書からテキストを抽出するには?

+0

https://stackoverflow.com/q/20606467/1271037 – dovid

+0

iTextSharpで指定された領域に含まれるテキストを取得する可能性があります(https://stackoverflow.com/questions/20606467/get-text-occurrences-contained-in-a-specified-area-withexiteharp) – bfontaine

答えて

4

私は同意しますが、OCRはここで使用する方法ではありません。バウンディングボックスの座標とともにテキストを抽出できるPDFライブラリが必要です。

QuickPDFは、非常にリーズナブルな$ 249の価格で必要な情報を抽出できる商用ライブラリ(www.quickpdf.com)です。 http://www.quickpdflibrary.com/help/quickpdf/DAExtractPageText.phpはあなたが探している機能です。これにより、ページ全体のテキストが抽出され、単純な点および/または四角形の関数を使用して、選択した四角形にテキストを制限する必要があります。

iTextが私の研究に基づいてこの機能を持っているとは思わない。

またHow to extract text from a PDF?

+0

あなたの答えに感謝します。 – davidgale

1

PDFをJPEG画像にラスタライズして、テキスト認識(OCR)を使用して選択した領域内のテキストを抽出することをお勧めします。 .NET用のOCRライブラリについては、articleです。 PDFからテキストを抽出することに関しては、これがどのようにしてより確実に達成されるかを示すhere's an articleが関係しています。問題は、ユーザーが選択した矩形内のテキストをどのように認識するかにあります。

+0

オプションではありません。私は100%の精度が必要です。 ocrは100%正確ではありません。 1つのpdf文書に複数の言語のテキストが含まれる場合があります。私が知る限り、一度に複数の言語をサポートする無料のライブラリがありません。 – davidgale

+0

@davidgale、私は非常にこの種の問題のための無料の解決策が存在する疑いがあります。 2つ目のオプションを見てから、PDFからテキストを抽出し、あなたのケースで十分に確実に動作するかどうかを確認してください。それでもIMHOは簡単な作業ではない選択領域について把握する必要があり、これを実行できるフリーウェアライブラリは認識していません。 –

1

(免責事項を - 私はそのPDFの製品にAtalasoftのために働く)お読みください Atalasoft's PdfReaderはこれを行います。フリーウェアではありませんが、かなりうまく動作します。コードは次のようになります

using (PdfTextDocument doc = new PdfTextDocument(pathToFile)) { 
    PdfTextPage page = doc.GetPage(pageNumber); 
    string text = page.GetTextInBox(yourSelection); 
} 
6

完全itextsharpを用いて直交座標に基づいてPDFデータを抽出し、このコード

List<string> linestringlist = new List<string>(); 
    PdfReader reader = new PdfReader(pdfFilename); 
    iTextSharp.text.Rectangle rect = new iTextSharp.text.Rectangle(coordinate1, coordinate2, coordinate3, coordinate4); 
    RenderFilter[] renderFilter = new RenderFilter[1]; 
    renderFilter[0] = new RegionTextRenderFilter(rect); 
    ITextExtractionStrategy textExtractionStrategy = new FilteredTextRenderListener(new LocationTextExtractionStrategy(), renderFilter); 
    string text = PdfTextExtractor.GetTextFromPage(reader, 1, textExtractionStrategy); 
+2

どの時点で 'linestringlist'を使用していますか? –

+0

ここで 'linestringList'の使用は何ですか? –

関連する問題