3

我正在我的程序中测量一些字体指标,然后使用它们来创建输出 PDF 文件。

为此,我使用了 Graphics2D、FontContextRendered、GlyphVectors 以及随之而来的所有东西。我在具有指定字体的 JTextArea 上调用 getGraphics()。

但是,如果两个用户使用相同的数据创建相同的文档,但在两个不同的设备上,我需要这些文档完全相同。

但是,由于 Graphics2D 使用当前设备的 DPI,这可能因设备而异,因此可能并非如此。

现在我可以做两件事:

  1. 我可以强制 Graphics2D 使用特定的 DPI(在我的情况下为 96)。
  2. 我可以找出 Graphics2D 使用的 DPI,然后据此扩充结果。

我猜第二种方法更容易,但我不知道该怎么做。你能帮助我吗?

4

1 回答 1

3
Graphics2D g2d;

final AffineTransform trans = g2d.getDeviceConfiguration().getNormalizingTransform();
System.out.println(trans.getScaleX()*72+" DPI horizontally");
System.out.println(trans.getScaleY()*72+" DPI vertically");

您可以将转换设置Graphics2D为强制 72 DPI 或使用所需 DPI 和 72 DPI 之间的比率将其缩放到任何其他 DPI。

于 2013-09-18T17:44:49.197 回答