Itext - 以英寸错误地检索图像宽度

时间:2015-08-24 12:01:59

标签: java pdf itext pdf-parsing

我正在使用以下功能

public void renderImage(ImageRenderInfo renderInfo) {
    try {
        String filename;
        FileOutputStream os;
        PdfImageObject image = renderInfo.getImage();


        PdfDictionary imageDict = renderInfo.getImage().getDictionary();
        float widthPx = imageDict.getAsNumber(PdfName.WIDTH).floatValue(); 
        float heightPx = imageDict.getAsNumber(PdfName.HEIGHT).floatValue();
        float widthUu = renderInfo.getImageCTM().get(Matrix.I11);
        float heigthUu = renderInfo.getImageCTM().get(Matrix.I22);

 //while printing in inches I am dividing heightUu and widthUu by 72

        System.out.printf("Image %.0fpx*%.0fpx, %.0fuu*%.0fuu, %.2fin*%.2fin\n", widthPx, heightPx, widthUu, heigthUu, widthUu/72, heigthUu/72);

        if (image == null) return;
        filename = String.format(path, renderInfo.getRef().getNumber(), image.getFileType());
        System.out.println(filename);
        os = new FileOutputStream(filename);
        os.write(image.getImageAsBytes());
        os.flush();
        os.close();


    } catch (IOException e) {
        System.out.println(e.getMessage());
    }
}

当我检查photoshop中的图像尺寸时,我得到的像素高度和宽度完美,但没有正确地以英寸为单位获得宽度和高度

我需要它以便我可以计算出图像的DPI。

对于Ex:

图片原始值 宽度 - 450像素和高度 - 362像素

宽度 - 6.25英寸和高度 - 5.028英寸(值来自photoshop)

我从itext收到的信息:

宽度 - 450像素和高度 - 362像素(这是完美的)

宽度-3.60英寸和高度--2.90英寸(这是问题)

0 个答案:

没有答案