【问题标题】:Get co-ordinates of image in pdf获取pdf中图像的坐标
【发布时间】:2014-06-05 08:25:35
【问题描述】:

在我的项目中,我想在 pdf 中找到图像的坐标。我尝试搜索 itext 和 pdfbox,但没有成功。使用这些坐标和提取的图像,我想验证提取的图像是否与数据库中存在的图像相同,图像的坐标是否与数据库中存在的相同。

【问题讨论】:

    标签: image pdf itext


    【解决方案1】:

    当您说您已尝试使用 iText 时,我假设您已使用 ExtractImages 示例作为代码的起点。这个例子使用了辅助类MyImageRenderListener,它实现了RenderListener接口。

    在那个辅助类中,renderImage() 方法是这样实现的:

    public void renderImage(ImageRenderInfo renderInfo) {
        try {
            String filename;
            FileOutputStream os;
            PdfImageObject image = renderInfo.getImage();
            if (image == null) return;
            filename = String.format(path, renderInfo.getRef().getNumber(), image.getFileType());
            os = new FileOutputStream(filename);
            os.write(image.getImageAsBytes());
            os.flush();
            os.close();
        } catch (IOException e) {
            System.out.println(e.getMessage());
        }
    }
    

    它使用ImageRenderInfo 对象获取PdfImageObject 实例,并使用该对象创建图像文件。

    如果您检查 ImageRenderInfo 类,您会发现您还可以询问有关图像的其他信息。您需要的是 getImageCTM() 方法。此方法返回一个Matrix 对象。这个矩阵可以用普通的高中代数来解释。值 I31I32 为您提供 X 和 Y 位置。在大多数情况下,I11I22 会为您提供宽度和高度(除非图像被旋转)。

    如果图像被旋转,您将不得不查阅您的高中教科书,更具体地说,是那些讨论解析几何的教科书。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多