머리글과 바닥 글이 있지만 몸에 2 개의 열이있는 PDF를 읽는 데 문제가 있습니다.iTextSharp - 2 열로 PDF 읽기
이미 헤더의 열 너비와 높이가 있지만 열이있는 페이지를 읽는 코드가 필요합니다.
누구든지 나에게 PDF 열을 읽는 코드를 제공 할 수 있습니까?
당신을 감사
머리글과 바닥 글이 있지만 몸에 2 개의 열이있는 PDF를 읽는 데 문제가 있습니다.iTextSharp - 2 열로 PDF 읽기
이미 헤더의 열 너비와 높이가 있지만 열이있는 페이지를 읽는 코드가 필요합니다.
누구든지 나에게 PDF 열을 읽는 코드를 제공 할 수 있습니까?
당신을 감사
그것은 당신이 컬럼의 위치를 모른다면 당신이 원하는 것을 달성하기 매우 어렵습니다,하지만 당신은 이미 열 너비와 높이를 가지고 "라고 때문에 당신은 그것의 좌표가 있다고 가정 ". 이 경우, 귀하의 질문에 유래에 게시이 다른 질문에서 해당 다르지 않다 :
RenderFilter[] filter = {new RegionTextRenderFilter(rect)};
ITextExtractionStrategy strategy = new FilteredTextRenderListener(
new LocationTextExtractionStrategy(), filter);
String single_column = PdfTextExtractor.GetTextFromPage(reader, i, strategy));
:
iTextSharp read from specific position
는 rect
이 컬럼의 위치에 해당하는 Rectangle
이라고 가정에, 당신은이 코드가 필요합니다
이제 단일 열에 텍스트가 있습니다. 페이지의 모든 열에 대해이 작업을 반복해야합니다.
추가 코멘트 다음 RegionTextRenderFilter
를 사용하여 대부분의 경우 동안은 (있는 열은 단순히 라인에 추가 공간 문자를 삽입하여 생성), 몇 가지 경우를 잘 작동에 처리하기 위해 텍스트 덩어리를 분할해야 할 수도 전진. 예를 들어, this answer에서 TextRenderInfoSplitter
을 사용하고 FilteredTextRenderListener
을 입력하면됩니다. (이 코멘트는 mkl에 의해 제공되었습니다.)
대부분의 경우 'RegionTextRenderFilter'를 사용하면 문제가 없지만 줄에 공백 문자를 삽입하여 생성되는 몇 가지 경우에는 텍스트 청크가 미리 처리됩니다. 예를 들어, [이 답변] (http://stackoverflow.com/questions/21000256/pdf-reading-highlighed-text-highlight-annotations-using-c-sharp/21023311#21023311)의'TextRenderInfoSplitter'를 사용하고' FilteredTextRenderListener'를 호출합니다. – mkl
좋은 발언, mkl, 나는 대답에 당신의 의견을 추가 할 것입니다. –
감사 브루노, 하지만이 전략은 double \ n의 텍스트를 \ n 단일 문자로 변경합니다. 그리고 SimpleTextExtractionStrategy()에서 수행 된 것과 같이 \ n의 두 배가 필요합니다. double \ n을 잃지 않고 사각형을 어떻게 사용할 수 있는지 알고 계십니까? –