gpt4 book ai didi

pdf - PDF字体对象的/Widths数组是冗余信息吗?

转载 作者:行者123 更新时间:2023-12-04 13:18:21 30 4
gpt4 key购买 nike

对 pdf 的引用表明定义字体资源的 pdf 字典需要包含一个属性 /Widhts 提供以下信息:

(Required except for the standard 14 fonts; indirect reference preferred) An array of ( LastChar − FirstChar + 1) widths, each element being the glyph width for the character code that equals FirstChar plus the array index. For character codes outside the range FirstChar to LastChar , the value of MissingWidth from the FontDescriptor entry for this font is used. The glyph widths are measured in units in which 1000 units corresponds to 1 unit in text space. These widths must be consistent with the actual widths given in the font program. (See implementation note 61 in Appendix H.)

已添加重点。

再次提供宽度有什么好处,它们显然包含在字体程序中吗?

坦率地说:有人可以确认或拒绝这里应该提供的信息吗?字形宽度显然是多余的信息,考虑到它甚至被提到包含在字体程序中?

或者某些字体程序包含字形而不指定其宽度?是因为有些字体程序不包括宽度,还是这只是一种耐心练习,旨在使 PDF 文件的生成复杂化,希望人们坚持使用 Adob​​e 软件?

/Widths 条目是否需要测试引用字体(未嵌入)是否“正确”(即 pdf 查看器应该检查 pdf 是否需要字体程序, 可能是在平台上找到的,比较 /Widths)?

最佳答案

Widths 数组被记录为存在,因此应用程序可以确定字形的度量而无需解码字体。这可能(例如)在围绕文本绘制选择框或以某种方式突出显示文本时有用。

请参阅 PDF 1.7 规范的第 393 和 394 页:

The width information for each glyph is stored both in the font dictionary and in the font program itself. (The two sets of widths must be identical; storing this information in the font dictionary, although redundant, enables a consumer application to determine glyph positioning without having to look inside the font program.)

我还应该提到,许多 PDF 制作者将滥用宽度数组视为更改字体间距的便捷方式。如果字体数组的宽度与字体程序中字形的规范不匹配,Acrobat 使用宽度数组值(这是您引用的文本所引用的附录 H 中的实现说明)。我似乎还记得最新版本的规范取消了 base 14 字体的异常(exception),所有 字体现在应该有一个/Widths 数组。我们有许多 PDF 文件的示例,其中指标数组与字体程序中的宽度不匹配。

请注意,Acrobat Pro 中的预检检查器在检查 PDF/A 兼容性时,如果宽度和规范不同,将会抛出错误。

因此,虽然/Widths 数组在技术上确实是多余的,因为可以从字体中检索相同的信息,但对于某些应用程序来说,以更容易访问的形式获取信息会很方便,并且如果(如 PDF consumer) 你希望匹配来自Acrobat的渲染,你需要使用它。

关于pdf - PDF字体对象的/Widths数组是冗余信息吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57450719/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com