2012-12-11 19 views
1

使用PdfGraphics2D當我使用這樣的圖形上下文繪製AWT組件繪製時使用什麼單位:在iText的

PdfTemplate template = contentByte.createTemplate(400, 400); 
Graphics2D g2d = template.createGraphics(400, 400); 

myComponent.paint(g2d); 
g2d.dispose(); 

在這裏使用的單位是什麼?

創建模板時,我應該使用用戶單位(pt),對不對?這是否意味着在繪畫本身也有使用點?

假設awt組件中有一個100x100像素大小的圖像。它通過調用g2d.drawImage(image)來繪製。但是如果單位是點數,圖像會比它應該大。

回答

1

默認情況下,用戶單位與印刷點對應,但您可以在PdfWriter設置中更改此設置(您可以將其從1更改爲75000)。

如果您有100x100像素的圖像,那麼iText會將其解釋爲100x100像素的圖像。我們知道這並不總是正確的,但如果沒有解析度值,px值就沒有實際意義。

+0

所以當我需要在awt和pdf中繪製我的組件1:1時,有什麼方法可以做到這一點?注意我無法更改PdfWriter設置。 – Behnil

+0

我通常以點爲單位創建PdfTemplate,然後調整PdfTemplate的大小,例如將其包裝在Image對象中,並使用基於每英寸72 pt的值計算的百分比和以每英寸點數表示的分辨率對其進行縮放。 –

+0

不錯,謝謝 – Behnil