pdf框:从pdf文档中提取图像并保持图像方向

juzqafwq  于 2021-06-27  发布在  Java
关注(0)|答案(1)|浏览(537)

我在这个论坛上找到了一些很好的解决方案,如何使用pdfbox从pdf文档中提取图像。我使用了我在一篇帖子中发现的以下代码:

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文档时,图片显示正确。但是有些提取的图像被旋转了nx90° 度。我猜旋转信息存储在pdf的某个地方?

2ekbmq32

2ekbmq321#

运行 PrintImageLocations.java 示例从源代码下载(或此处)并分析ctm(“当前变换矩阵”)来提取旋转 Math.round(Math.toDegrees(Math.atan2(ctmNew.getShearY(), ctmNew.getScaleY()))) .

相关问题