PDF Box:从 PDF 文档中提取图像并保持图像方向
PDF Box: extract images from PDF document and keeping the image orientation
我在这个论坛上找到了一些关于如何使用 PDFBox 从 PDF 文档中提取图像的很好的解决方案。我使用了以下代码片段,我在 post:
中找到了
PDPageTree list = document.getPages();
for (PDPage page : list) {
PDResources pdResources = page.getResources();
for (COSName c : pdResources.getXObjectNames()) {
try {
PDXObject imageObj = pdResources.getXObject(c);
if (imageObj instanceof PDImageXObject) {
// same image to list
BufferedImage bImage = ((PDImageXObject) imageObj).getImage();
acceptedImages.add(bImage);
}
} catch (MissingImageReaderException mex) {
log.warn("Missing Image Reader for format: ", mex);
}
}
}
但我遇到了问题,在极少数情况下,某些提取的图像方向错误。当我查看 PDF 文档时,图片显示正确。但是一些提取的图像旋转了 n x 90° 度。我想旋转信息存储在 PDF 中的某处?
运行 来自源代码下载的 PrintImageLocations.java
示例(或 here)并分析 CTM(“当前变换矩阵”)以使用 [=11= 提取旋转].
我在这个论坛上找到了一些关于如何使用 PDFBox 从 PDF 文档中提取图像的很好的解决方案。我使用了以下代码片段,我在 post:
中找到了PDPageTree list = document.getPages();
for (PDPage page : list) {
PDResources pdResources = page.getResources();
for (COSName c : pdResources.getXObjectNames()) {
try {
PDXObject imageObj = pdResources.getXObject(c);
if (imageObj instanceof PDImageXObject) {
// same image to list
BufferedImage bImage = ((PDImageXObject) imageObj).getImage();
acceptedImages.add(bImage);
}
} catch (MissingImageReaderException mex) {
log.warn("Missing Image Reader for format: ", mex);
}
}
}
但我遇到了问题,在极少数情况下,某些提取的图像方向错误。当我查看 PDF 文档时,图片显示正确。但是一些提取的图像旋转了 n x 90° 度。我想旋转信息存储在 PDF 中的某处?
运行 来自源代码下载的 PrintImageLocations.java
示例(或 here)并分析 CTM(“当前变换矩阵”)以使用 [=11= 提取旋转].