使用 java swing,无论用户的打印机及其分辨率如何,我都想以准确的物理尺寸打印
例如:我想在纸上准确打印 5cm x 3cm 的矩形。
我不知道如何找到所选打印机的当前 dpi(考虑甚至选择打印机可能有多种 dpi 配置,用户可能会在打印时从打印对话框中更改)。
Java 的打印 API 几乎“假定”为 72dpi,即使它可以打印到分辨率比这高得多的打印机。
这使事情变得更容易,因为您根本不需要关心。
本质上,您可以通过转换为 dpi 将 cm 转换为像素...
double cms = 5;
pixels = (cms * 0.393700787d) * 72
// 0.393700787d is the number of cms per inch ;)
查看如何在 java 中设计要在 300 dpi 打印机上打印的图像以获取更多详细信息
打印机仅使用 java API 了解长度/纸张大小。1 英寸在纸上包含 72 个点。因此您需要参考 (inch * 72)