2017-01-01 5 views
1

C#을 사용하여 PDF의 주석 만 추출하고 읽기해야합니다.추출 PDF 주석

PDFBox와 itextsharp를 모두 사용하여 파일을 추출 할 수 있지만 주석 텍스트 나 밑줄이 있거나 색이있는 선 (강조 표시된 선)을 읽을 필요가 있습니다.

아이디어가 있으십니까?

+0

PDFBox에 대한 대답은 같은 재 PDF 내부입니다. 물론 코드가 다릅니다. 주석 영역에서 추출하려면 소스 코드 다운로드의 PrintURL 예제를 참조하십시오. –

+0

@TilmanHausherr PrintURL의 C# 코드가 있습니까? – Ahmad

+0

아니요, Java 만 해당됩니다. 하지만 C#과 자바는 꽤 비슷합니다. –

답변

1

페이지의 실제 내용 (페이지의 콘텐츠 스트림의 PDF 구문을 사용하여 설명 된 내용)과 페이지에 추가 된 주석 페이지 사전의 /Annots 항목의 주석 사전에 설명 된 내용).

지금까지 주석 사전의 컨텐츠를 추출하고 있지만 주석이 입력 된 /Rect 항목을 사용하여 위치가 식별 된 컨텐츠 스트림에서 컨텐츠를 추출하려고합니다. 이를 위해서는 페이지의 콘텐츠 스트림을 구문 분석해야합니다.

official iText web site에 가서 더 구체적으로 질문, 읽어 보시기 바랍니다 : How to read text from a specific position?

readerPdfReader 인스턴스가 있다고 가정은 rect는 추출 할 텍스트의 위치를 ​​정의 Rectanglepage 해당 페이지입니다 수, 당신은 RenderFilter를 작성하고이 같은 LocationTextExtractionStrategy를 사용할 수 있습니다

RenderFilter[] filter = {new RegionTextRenderFilter(rect)}; 
ITextExtractionStrategy strategy = 
    new FilteredTextRenderListener(
     new LocationTextExtractionStrategy(), filter); 
String text = PdfTextExtractor.GetTextFromPage(reader, page, strategy)); 
+0

실제로 일부 주석 유형의 경우 ** QuadPoints **가 ** Rect **보다 간결합니다. 마크 업 주석의 경우 ** AP ** 출현 스트림은 여전히 ​​텍스트의 다른 부분 집합을 표시 할 수 있습니다. 하지만 아무도 이러한 외모에 의해 텍스트 범위를 확인하려고하지 않을 것입니다 ... – mkl

+0

@ Bruno Lowagie 주석으로 추가 된 pdf 파일에서 강조 표시된 문장을 가져와야합니다. – Ahmad