我使用iText将图像输出到PDF文件中,但是图像总是比预期的要大。根据书籍(iText in Action)的说法,这是因为iText始终以72 dpi的分辨率显示图像,而不管图像实际的dpi属性是什么。该书建议使用image.getDpiX()查找图像的dpi,然后使用image.scalePercent(72 / actualDpi * 100)来正确显示图像。到目前为止,我所有图像的getDpiX()属性都返回0(我尝试了2个gif和1个jpg)。是否有另一种方法可以找出实际的DPI,以便我的图像可以正确缩放?
com.lowagie.text.Image graphic = com.lowagie.text.Image.getInstance(imgPath);
float actualDpi = graphic.getDpiX();
if (actualDpi > 0)
//Never gets here
graphic.scalePercent(72f / actualDpi * 100);