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

时间:2015-04-07 18:10:20

标签: pdf pdfclown

Inches = Pixels / dpi

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

1) Inches --> float

2) Pixels --> float

1 个答案:

答案 0 :(得分:1)

PDF的坐标系基于设备独立性的概念,即能够保留图形对象与其页面之间的几何关系,无论它们通过何种设备进行渲染。这种与设备无关的坐标系称为用户空间默认情况下,其单位的长度(大约)对应于印刷点(1/72英寸),定义了所谓的默认用户空间

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

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

enter image description here

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

BTW,浮点数据类型被选择来代表用户空间测量,因为它显然是映射这种连续体的最方便的近似 - 我想在解释之后你不会再将测量与测量混淆了。

有关PDF坐标系的详细说明,请参见当前规范的第4.2节。