【问题标题】:How to identitfy tables, images and list in pdf file using java?如何使用java识别pdf文件中的表格、图像和列表?
【发布时间】:2014-09-29 05:13:45
【问题描述】:

我是 Java 编程新手....我需要提取每个 tables and images as per source,我尝试使用 pdfbox 提取文本,但我只获取文本和文本属性。如何使用java程序识别表格、图像、列表等。

是否可以在pdf文件中识别...?

我使用的模块是PDFbox,,如果有任何想法进一步处理...,

【问题讨论】:

  • 我们在 PDF 中认为的表格,通常只是在页面上某些特殊位置绘制的文本片段的集合,而不是我们可以查询行和列的表格对象。因此,一般来说,最好的方法是搜索没有内容的行或四个条,其中一个可能分隔列或行。 PDFBox 中没有实现这样的搜索。不过,它确实包含实现该功能所需的基本方法。

标签: java pdf pdfbox


【解决方案1】:

以下代码可用于提取图像:

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

【讨论】:

  • 同样,您可以尝试其他元素,例如表格、列表 - 这太荒谬了。除非表格或列表实际上是图像,否则提取它们与提取图像完全不同。此外,您的代码仅提取页面的图像资源。 IE。你不检查这些图片是否真的在页面上使用,你也忽略了内嵌图片。
猜你喜欢
  • 2017-08-25
  • 2017-10-23
  • 2017-06-26
  • 2021-09-08
  • 1970-01-01
  • 2019-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多