以pdf格式获取图像坐标

时间:2014-06-05 08:25:35

标签: image pdf itext

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

1 个答案:

答案 0 :(得分: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会为您提供宽度和高度(除非图像被旋转)。

如果图像被旋转,您必须咨询您的高中教科书,更具体地说是讨论分析几何图形的教科书。