将测量的英寸(和像素)转换为浮点数?

Convert measured inches (and pixels) to float?

Inches = Pixels / dpi

我注意到 PDF Clown 使用浮动测量:如何将英寸和像素转换为浮动宽度、高度等,以便在 PDF 中正常工作?有人有这方面的数学公式吗?

1) Inches --> float

2) Pixels --> float

PDF 的坐标系基于 设备独立性 的概念,即无论图形对象呈现在何种设备上,都能够保持图形对象与其页面之间的几何关系通过。这种与设备无关的坐标系称为userspace默认其单位长度(大约)对应一个排版点(1/72英寸),定义所谓默认用户space .

但是,正如 mkl 适当警告您的那样,用户 space 和设备 space 之间的关系可以通过 当前转换矩阵 (CTM):这实际上意味着用户 space 单位的长度仅在应用倾斜或缩放之前与印刷点匹配!此外,由于 PDF 1.6 默认用户 space 单位可能会被设置页面字典中的 UserUnit 条目覆盖。

所以,简短的回答是,在 PDF 中,一英寸 对应于 72 个默认用户 space 单位(未授予 CTM 干扰) ;另一方面,由于这个坐标系(根据定义)与设备无关,推理像素没有意义- - 它们仅存在于离散的 space 样本中,而 PDF 定义了一个连续的 space 矢量图形,它与设备分辨率无关!见下图:

如果您需要将一些原本以像素表示的图形映射到 PDF 中,那么事先转换为英寸可能是一个明智的方法。

顺便说一句,选择浮点数据类型来表示用户 space 测量只是因为它显然是映射这种连续体的最方便的近似值——我想在这个解释之后你不会混淆不再用测量来测量。

在当前规范的第 4.2 节中可以找到关于 PDF 坐标系的详细描述。