0

我正在使用 Apache PDFBox 读取 PDF 文件并将其转换为 JPEG 图像。

import java.io.ByteArrayInputStream;
import java.awt.image.BufferedImage;
import org.apache.pdfbox.pdmodel.PDDocument;
import org.apache.pdfbox.rendering.PDFRenderer;
...

byte[] fileBytes;
...
PDDocument pdDocument = PDDocument.load(new ByteArrayInputStream(fileBytes));
BufferedImage image = new PDFRenderer(pdDocument).renderImage(0);
pdDocument.close();

有时 PDF 文档包含 JBIG2 图像。我正在使用 PDFBox 的JBIG2 ImageIO 插件来正确处理此类 PDF 文档。这工作正常。但我想知道转换后的原始 PDF 文档是否包含 JBIG2 图像。

我检查了PDDocument Javadoc,但我想不出办法来回答这个看似简单的问题:给定的 PDF 文档是否至少包含一个 JBIG2 图像?

由于我已经在使用 PDFBox,因此首选使用 PDFBox 的解决方案,但其他建议也将受到高度赞赏。

4

1 回答 1

1

ExtractImages.java从源代码下载或从这里获取源代码。在方法中搜索这一行write2file

String suffix = pdImage.getSuffix();

现在添加一些代码,例如

if ("jb2".equals(suffix))
{
    // do your stuff here, i.e. remember that it is JBIG2
}

然后从该方法中删除所有其余部分。

于 2020-10-22T18:27:14.610 回答