2014-09-29 543 views
0

我是新來的java編程....我需要提取每個tables and images as per source,我嘗試使用pdfbox提取文本,但我只獲取文本和文本屬性。如何識別表格,圖片,列表等。使用java程序。如何使用java來識別pdf文件中的表格,圖像和列表?

是否可以識別PDF文件...?

我使用模塊PDFbox,如果任何想法進一步處理......,

+2

我們在PDF中看到的表格通常僅僅是在頁面上某些特殊位置繪製的文本片段的集合,而不是某些我們可以查詢行和列的表格對象。因此,一般情況下,最好的方法是搜索沒有內容的行或四個欄,可能是分隔列或行。這種搜索沒有在PDFBox中實現。不過,它確實包含了實現自己所需的基本方法。 – mkl 2014-09-29 05:38:50

回答

0

下面的代碼可以用來提取圖像:

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 2014-09-29 07:39:38