2010-11-28 5 views
5

특정 사각형 영역 내에서 PDF 문서의 텍스트를 추출해야합니다. 작업 흐름은 다음과 같습니다. 첫째로 모두의 pdf는 jpg 심상으로 개조된다. 그런 다음 사용자는 그림의 상단에 선택 사각형을 그립니다. 그럼 어떻게 든 그 선택 영역 내의 PDF 문서에서 모든 텍스트를 추출해야합니다. C#에서 프리웨어 pdf libs에 액세스 할 수있는 방법은 무엇입니까?특정 직사각형 영역 내의 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은 찾고있는 기능입니다. 이렇게하면 전체 페이지의 텍스트가 추출되고 간단한 Point 및/또는 Rectangle 함수를 사용하여 텍스트를 선택한 사각형으로 제한해야합니다.

iText가 내 연구를 기반으로이 기능을 가지고 있다고 생각하지 않습니다.

또한 How to extract text from a PDF?

+0

주셔서 감사합니다. – davidgale

1

OCR (텍스트 인식)을 사용하여 선택한 영역 내에서 텍스트를 추출하기 위해 PDF를 JPEG 이미지로 래스터 화 한 후에 제안 할 것입니다. 다음은 .NET 용 OCR 라이브러리에 관한 article입니다. PDF에서 텍스트를 추출하는 일은 다소 안정적으로 달성되는 방법을 보여주는 here's an article입니다. 문제는 사용자가 선택한 사각형 내의 텍스트를 인식하는 방법입니다.

+0

this 옵션이 아닙니다. 나는 100 %의 정확성이 필요하다. ocr은 100 % 정확하지 않습니다. 단일 pdf 문서 이외에도 여러 언어로 텍스트가 포함될 수 있습니다. 내가 아는 한 번에 하나 이상의 언어를 지원하는 무료 라이브러리가 없습니다. – davidgale

+0

@davidgale, 나는 이런 종류의 문제에 대해 무료 솔루션이 존재한다는 것을 의심 스럽다. 두 번째 옵션을 살펴본 다음 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'의 사용법은 무엇입니까? –

관련 문제