【问题标题】:What units are used when drawing using PdfGraphics2D in iText在 iText 中使用 PdfGraphics2D 绘图时使用哪些单位
【发布时间】:2012-12-11 10:02:44
【问题描述】:

当我使用这样的图形上下文绘制 awt 组件时:

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

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

这里使用什么单位?

创建模板时,我应该使用用户单位 (pt),对吗?是不是说画本身也有用到的点?

假设 awt 组件中有一个 100x100 像素大小的图像。它是通过调用 g2d.drawImage(image) 来绘制的。但是如果单位是点,图像会比它应该的大。

【问题讨论】:

    标签: java itext


    【解决方案1】:

    默认情况下,用户单位对应一个印刷点,但您可以在 PdfWriter 设置中更改此设置(可以将其从 1 更改为 75000)。

    如果您有 100x100 像素的图像,则 iText 会将其解释为 100x100 像素的图像。我们知道这并不总是正确的,但是如果没有分辨率值,px 值就没有真正的意义。

    【讨论】:

    • 所以当我需要在 awt 和 pdf 中 1:1 绘制我的组件时,正确的方法是什么?注意我无法更改 PdfWriter 设置。
    • 我通常以磅为单位创建 PdfTemplate,然后调整 PdfTemplate 的大小,例如将其包装在 Image 对象中并使用基于值 72 pt 每英寸和以每英寸点数表示的分辨率。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-05-04
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2019-03-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多