复合(Type0)字体的PDF字形宽度



CIDfont宽度定义在哪个单位/空间?我正在尝试获取文档中字形的设备空间坐标(或者,在我的情况下,在默认用户空间中(,但我在复合字体的字形位移方面遇到了问题。

ISO规范(CIDFonts的8.7.1(规定DW是以用户单位定义的。考虑到其他字体类型(Type3除外(在字形空间中定义了宽度,这似乎是一个奇怪的选择,但W中的宽度也在用户单位中定义是有道理的。

但事实并非如此。当计算字形位移(如9.4.4文本空间细节中所述(时,将宽度乘以反向文本矩阵,将其转换为文本空间,似乎不会给我正确的结果。我正在处理的文档使用默认的用户空间(没有定义CTM或设置UserUnit(,所以据我所知,这应该有效。

我哪里错了?

ISO规范(CIDFonts上的8.7.1(规定DW是以用户单位定义的。

我假设您发现ISO 32000-1,第9.7.4.1节中提到的"用户单位"("CIDFonts"部分的"通用"小节(:

DW整数(可选(CIDFont中字形的默认宽度(请参阅9.7.4.3"CIDFonts中的字形度量"(。默认值:1000(以用户单位定义(。

(ISO 32000-1,表117–CIDFont字典中的条目(

事实上,这里的"(以用户单位定义(">非常具有误导性,因此在ISO 32000-2中已将其删除,其中相应的条目仅显示

DW数字(可选(CIDFont中字形的默认宽度(请参阅9.7.4.3"CIDFonts中的字形度量"(。默认值:1000。

(ISO 32000-2,表115——CIDFont字典中的条目(

假设以用户空间为单位给出字体位移数字也没有任何意义,因为位移必须尊重当前状态,如文本矩阵、水平缩放和字体大小,因此不能是用户空间中的固定维度。

相反,我们使用CID字体的情况与使用其他字体的情况完全相同,位移在字形空间中给出,并转换为ISO 32000-1和ISO 32000-2:第8.3.2.4节("其他坐标空间"(中定义的文本空间

字体中的字符字形应在字形空间中定义(见9.2.4,"字形定位和度量"(。从字形空间到文本空间的转换应由字体矩阵定义。对于大多数类型的字体,该矩阵应预定义为将1000个单位的字形空间映射到1个单位的文本空间;对于第3类字体,应在字体字典中明确给出字体矩阵(见9.6.5"第3类字形"(。

因此,默认CIDFont字形宽度的默认值1000DW允许一个正方形的1×1文本空间区域,而正方形区域确实是许多CJK字形可以正确绘制的区域,使该默认值合理。

最新更新