2011-09-06 37 views
2

我有一個java應用程序,它使用的是生成報告的文本。 我必須包含一個分辨率爲150dpi的標誌。 我uwrote的代碼如下:Itext和PngImage

final float logoWidth = 368; 
final float logoHeigth = 182; 
float x = PageSize.A4.getWidth() - (16 * millimeters) - logoWidth; 
float y = PageSize.A4.getHeight() - logoHeigth;  

final InputStream idLogo = getClass().getResourceAsStream("/logos/ID_Module_150dpi_layoutgroesse.png"); 

Image logoTop = PngImage.getImage(idLogo); 
logoTop.setAbsolutePosition(x, y); 

的問題是,該標誌是在合適的位置添加,但大小是不正確的。它是高度的兩倍,寬度的兩倍。我在這裏做錯了什麼?

在此先感謝!

回答

3

您是否嘗試過scaleToFit()

Image logoTop = PngImage.getImage(idLogo); 
logoTop.scaleToFit(x, y); 

然後把它定位,我個人使用scaleToFit()與iText的表格相結合,定位

+1

好了,之間我發現,如果圖像被放置沒有任何縮放分辨率將爲72.如果放大圖像的縮放比例爲50%,分辨率將爲144.對於較低的縮放比例,分辨率會增加,因爲像素相同,但尺寸會更小。在我的情況下,我必須調整到45%,因爲所需的分辨率是150 DPI。我正在使用logoTop.scalePercent(48) – Luixv

+0

噢好吧,非常有趣,很高興你找到了答案! – epoch

+0

順便說一句,我不得不將其縮放到48%而不是45%。我的錯。 – Luixv