2016-08-16 5 views
0

PDFBox를 사용하여 PDF 문서에서 텍스트를 추출합니다. 텍스트를 가져 오지만 전부는 아닙니다 (특히, 제목/머리말 및 꼬리말 텍스트가 누락 된 것처럼 보입니다). 누락 된 부분은 이미지가 아니며 여우 판독기에서 텍스트보기를 사용할 때 추출됩니다.PDFBox getText가 표시되는 텍스트를 모두 반환하지 않습니다.

버전 1.8.12를 사용 중이며 더 많은 콘텐츠가 반환되는지 확인하기 위해 2.0.2의 테스트 케이스를 만들었습니다.

public static void main(String[] args) { 

    File file = new File("D:\\\\file.pdf"); 
    try { 
     PDDocument doc = PDDocument.load(file); 
     PDFTextStripper stripper = new PDFTextStripper(); 
     //stripper.setSuppressDuplicateOverlappingText(false); 
     stripper.getText(doc); 
    } catch (Exception e) { 
     System.out.println("Exc errirs "); 
    } 
} 

지금 내가 놓친 설정이 궁금해 :

이 내가 2.0.2에 사용되는 코드는? 텍스트가 일부 장식 요소 (텍스트 아래의 사각형) 위에 있기 때문에 PDFBox가 실패합니까?

감사

편집 : link to file in question 주석에서 설명하고있는 바와 같이

+2

문제를 재현 할 수있는 PDF를 공유하십시오. – mkl

+0

질문에 링크가 추가되었습니다. –

+1

그리고 어떤 텍스트가 빠졌습니까? 1 페이지에서 첫 번째 "Windows Phone"줄에 선행 기호는 글자가 아니라 벡터 그래픽으로 나타납니다. 나머지 라인 인 "Windows Phone :"과 "Empowering Business"는 PDFBox에서 추출합니다. 그들은 아마도 당신이 기대하는 곳에 나타나지 않지만 거기에 있습니다. – mkl

답변

1

텍스트가 누락되지 않은,하지만 "잘못된"위치. 기본적으로 PDFBox 텍스트 추출은 콘텐츠 스트림에있는 문자를 추출하지만 항상 자연스럽지는 않습니다. PDF 파일은 소프트웨어가 아닌 인간이 만듭니다. MKL이 지적 텍스트가 두 개의 열이있는 경우

stripper.setSortByPosition(true) 

그러나, 당신도 그 결과를 좋아하지 않을 :

대안은 정렬 옵션을 사용하는 것입니다.