【问题标题】:How to extract images from pdf using Java (not using pdfbox)如何使用Java从pdf中提取图像(不使用pdfbox)
【发布时间】:2023-03-05 06:14:02
【问题描述】:

我正在研究如何从大 (> 300MB) PDF 文件中提取图像。我正在使用 pdfbox,但由于某些我无法弄清楚的特殊原因,某些页面未正确提取。

我使用 pdfbox 的 PDFToImage 类作为我的代码的基础。

那么,你知道另一个图书馆可以帮助我做到这一点吗?我知道可以使用 iText,但我读到它不能用于商业产品。

我已经安装了 xpdf 和 xpdf-utils 软件包,名为 pdfimages 的实用程序运行良好。但我需要从 Java 解决这个问题,它应该是可移植的。

【问题讨论】:

  • 您可以将 xpdf-utils 移植到 Java。
  • iText 在 GPL 下,除非您购买商业许可证。
  • 我将尝试使用 = 5 的版本进行了更改。
  • 未正确提取的图像有什么问题?
  • 在两个由不同嵌入图像组成的特定页面中,每个页面的输出都是错误的..很难描述.....不同的嵌入图像是字母,最后一页有就像字母之间的孔......

标签: java image pdf rendering


【解决方案1】:

很难处理 300 Mb PDF 的最可能原因是内存不足。如果它适用于较小的 PDF,我会仔细研究它失败的原因。

【讨论】:

    【解决方案2】:

    我认为您在这里谈论的是两件不同的事情:从 PDF 中提取图像,以及将 PDF 页面转换为图像。 PDFToImage 会为每一页输出一张图片,而 pdfimages 会提取所有嵌入的图片(例如一个文本文档有 0 张图片)。

    看看org.apache.pdfbox.tools.ExtractImages (source code) 看看它是否符合您的要求。

    【讨论】:

    • 是的,你是对的,我正在尝试将 PDF 页面转换为图像,而不是提取所有嵌入的图像。问题是我在这种特殊情况下使用的 PDF 每页有一个图像。很抱歉对于这个误会。我也检查了 ExtractImages 没有运气。
    • 我终于使用了 pdfbox,问题是 pdfbox 无法正确提取图像 具有无法识别字体或 CMYK 颜色空间的 PDF。对于没有这些问题的 PDF,该库可以正常工作。
    【解决方案3】:

    你试过icepdfJPedal(都是纯java)吗?

    【讨论】:

    • 不,我没有。我可以在商业产品中使用其中的任何一个吗?
    • 它们都有 LGPL 和商业版本。您可以在商业产品中使用任何一种。
    • 我测试了 Icepdf,页面提取正常,但我现在遇到字体问题 :(。我以此为指导:wiki.icefaces.org/display/PDF/Converting+PDF+Page+Renderings
    猜你喜欢
    • 2012-02-01
    • 2011-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-01
    • 1970-01-01
    相关资源
    最近更新 更多