首页 > 解决方案 > PDFBox - 提取缩放和旋转的图像

问题描述

我正在尝试从 PDF 中提取图像(使用 PDFBox),就像它们在 PDF 中的样子一样(即应用了任何缩放和旋转 - 而不是原始的底层图像)。为此,我正在调整此处给出的答案,https ://stackoverflow.com/a/45570185/701867 ,通过添加以下内容(img我保存的 BufferedImage 在哪里,并且image是 PDImageXObject 对象:

Matrix m = getGraphicsState().getCurrentTransformationMatrix();

AffineTransformOp op = new AffineTransformOp(m.createAffineTransform(), AffineTransformOp.TYPE_BILINEAR);

BufferedImage img = op.createCompatibleDestImage(image.getImage(), image.getImage().getColorModel());
op.filter(image.getImage(), img);

但这似乎不起作用,并且我在不同的 PDF 上得到了各种不同的错误(通常是生成的图像太大,或者生成的宽度/高度为 0)。

我是否需要以某种方式缩放矩阵(可能转换为像素),还是我完全错误地接近这个并需要重新考虑?

标签: javaimagepdfpdfboxaffinetransform

解决方案


推荐阅读