2014-09-29 6 views
0

나는 자바 프로그래밍에 익숙하지 않다. 나는 각각 tables and images as per source을 추출해야하는데, 나는 pdfbox를 사용하여 텍스트를 추출하려하지만 텍스트와 텍스트 속성 만 얻는다. 테이블, 이미지, 목록 등을 식별하는 방법. 자바 프로그램 사용.테이블, 이미지 및 PDF 파일을 java를 사용하여 나열하는 방법은 무엇입니까?

pdf 파일을 식별 할 수 있습니까? 어떤 생각이 더 공정 ..., 코드 아래

+2

우리가 PDF로 표로 인식하는 것은 일반적으로 단순히 페이지의 특정 위치에 그려지는 텍스트 조각의 모음입니다. 열을 위해 열을 쿼리 할 수있는 테이블 개체가 아닙니다. 따라서 일반적으로 가장 좋은 방법은 콘텐츠가없는 줄 또는 4 개의 막대를 검색하는 것입니다. 둘 중 하나는 아마도 열 또는 행을 나누는 것입니다. 이러한 검색은 PDFBox에서 구현되지 않습니다. 그것은 자신을 구현하는 데 필요한 기본 방법을 포함하고 있습니다. – mkl

답변

0

이미지를 추출하는 데 사용할 수있는 경우

것은 내가 모듈을 사용하여 PDFbox,입니다 :

List pages = document.getDocumentCatalog().getAllPages(); 
       Iterator iter = pages.iterator(); 
       while(iter.hasNext()) 
       { 
        PDPage page = (PDPage)iter.next(); 
        PDResources resources = page.getResources(); 
        Map images = resources.getImages(); 
        if(images != null) 
        { 
         Iterator imageIter = images.keySet().iterator(); 
         while(imageIter.hasNext()) 
         { 
          String key = (String)imageIter.next(); 
          PDXObjectImage image = (PDXObjectImage)images.get(key); 
          String name = getUniqueFileName(key, image.getSuffix()); 
          System.out.println("Writing image:" + name); 
          image.write2file(name); 
         } 
        } 
       } 

당신은 유사한 문제에 대한 here을 참조 할 수 있습니다.

+0

* 마찬가지로 테이블, 목록 * 같은 다른 요소를 시도 할 수도 있습니다 ** - ** 이것은 우습다 **. 테이블이나 목록이 실제로 이미지가 아니라면 이미지를 추출하는 것과 완전히 다릅니다. 또한 코드는 페이지의 이미지 리소스 만 추출합니다. 나는. 이 이미지가 실제로 페이지에서 사용되는지 여부를 확인하지 않으며 인라인 이미지도 무시합니다. – mkl

관련 문제