问题标签 [compact-font-format]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c - 如何解析 CFF 的 Top DICT INDEX 数据条目?
我正在解析 CFF 数据。我已经到了“Top DICT INDEX”条目的地步。我已经成功解析了版本数据和“Name INDEX”,但是我正在努力解析下一个条目“Top DICT INDEX”。
根据 Adobe 技术说明 #5176 第 8 节:
这包含存储在 INDEX 结构中的 FontSet 中所有字体的顶级 DICT。
所以我认为将这个字典索引解析为 Name INDEX 是合乎逻辑的,除了将数组条目视为 char 数组之外,我会将它们解析为 DICT 数据类型。这就是我遇到问题的地方。INDEX 数据类型以大端格式声明两字节 (Card16) 数组计数。根据 INDEX 的元数据,我有 257 个条目(两个字节,其中 1 (data[offset] << 8) + data[++offset]
)。但规范指出:
此 INDEX 中包含的对象在顺序和编号上都与 Name INDEX 中的对象相对应。
My Name INDEX 包含 1 个条目(实际字体的名称)。所以我有点困惑我是否在数据解析的某个地方有偏移问题,或者实际的字体是无效的?
windows - 以编程方式将 CFF 字体转换为 OpenType 字体
有没有人有任何指针,我可以在其中找到有关如何围绕 CFF 字体创建 opentype 包装器的额外信息?
目前我有一个 CFF 文件解析器,因此我可以从中获取各种信息(cmap、字形名称、宽度、名称等)。鉴于此信息,我无法创建 Opentype(类似 truetype 格式)包装器,因此我可以使用 GDI 在 Windows 上使用该字体;GDI 不会加载 Opentype 字体,我唯一知道的是它无法加载字体。
有谁知道任何附加信息、验证应用程序、示例代码、获取附加信息为什么字体不能从 Windows 等加载?
注意:我正在寻找如何做到这一点的信息,而不是实用程序和/或转换工具。
fonts - Adobe CFF 格式的“私人 DICT 数据”有什么用
如 Adobe“紧凑字体格式”(CFF) 规范 ( http://partners.adobe.com/public/developer/en/font/5176.CFF.pdf ) 中所述,CFF 压缩后记中有一个“私有”字体字典字体(例如带有 TrueType 轮廓的 OpenType 字体)。
有人可以解释一下 CFF 字体中的“私有 DICT 数据”有什么用吗?
以及如何检查“私人 DICT 数据”的字体 - 例如在 FontLab Studio 中?
更新:
似乎 FontLab Studio 显示 Private DICT 提示数据如下:
fonts - CFF(紧凑字体格式)库与撤消子程序化?
出于 PDF 字体嵌入的目的,我的任务是从 CFF OpenType 文件中删除未使用字形的字形轮廓数据以减小其大小。
问题在于,与 TTF 不同,CFF 将其字形轮廓数据“压缩”到子例程中,并在字形之间创建依赖关系,我不能只从 cmap 和轮廓数据中删除字形及其匹配的字符。
由于有几个像 otfcc 这样的开源 CFF 库可以子程序化 CFF 文件,我想知道是否有库可以做相反的事情并撤消子程序化。
更新:我使用的库是 otfcc 和 sfntly。Sfntly 没有 CFF 解析器,所以我正在扩展一个,otfcc 确实有一个,但似乎没有子集选项,但源看起来更有希望。我还查看了 freetype,虽然它确实有 CFF 加载器,但似乎没有子集。
我目前已将 pdfbox 的 fontbox 从 Apache 移植到 sfntly 完成了一半。解析器工作,但子集仍然不完整。
pdf - 哪些 CFF 字体字段会产生视觉差异?
我正在为 CFF(PostScript Type 2)字体编写转换器,我想知道转换器可以删除哪些字段而不会在 PDF 文件中使用该字体时产生任何视觉差异。
我认为可以删除或更改这些字段:
/FontName
/PostScript.FSType
/PostScript.OrigFontType
/PostScript.OrigFontName
/PostScript.OrigFontStyle
/FontInfo.version
/FontInfo.Notice
/FontInfo.Copyright
/FontInfo.FullName
/FontInfo.FamilyName
/FontInfo.Weight
/FontInfo.isFixedPitch
/UniqueID
/XUID
我认为必须保留这些字段,因为它们会影响渲染:
/StrokeWidth
/PaintType
/CharstringType
/FontMatrix
/Encoding
/CharStrings
/Private.BlueValues
/Private.OtherBlues
/Private.FamilyBlues
/Private.FamilyOtherBlues
/Private.BlueScale
/Private.BlueShift
/Private.BlueFuzz
/Private.StdHW
/Private.StdVW
/Private.StemSnapH
/Private.StemSnapV
/Private.Subrs
/Private.GlobalSubrs
/Private.defaultWidthX
/Private.nominalWidthX
我不确定这些字段:
/FontInfo.ItalicAngle
/FontInfo.UnderlinePosition
/FontInfo.UnderlineThickness
/FontBBox
/BaseFontName
/BaseFontBlend
/Private.ForceBold
/Private.LanguageGroup
/Private.ExpansionFactor
/Private.initialRandomSeed
/Private.unknown12015
那么,当在 PDF 文件中使用字体时,上面的哪些字段会,哪些不会在渲染中产生视觉差异?
unicode - CFF 字体文件中的编码和字符集表是如何组织的?
CFF 规范第 11 章到第 13 章对文件中组织的编码和字符集数据进行了粗略的描述。CFF 规范。这里有一些问题。
考虑到多字体文件的可能存在,并且字符串是以每种字体的方式访问的,相应的索引也应该只对每种字体有意义。但是,文件最多只有一种编码和一个字符集表吗?如果是这样,字形索引与字符字符串的索引如何对应?如果不是,它们是否在访问它们的 TopDict 中多次出现? (已解决。请参阅下面的答案。)
字符集似乎为每个字形命名。编码呢?每个数组元素中存储的 Card8 数据是什么?鉴于它的 256 限制,编码会不会很受限制?为什么在补充格式中数据是通过 SID 来的?通过编码访问字形的设计方法是什么(以混合字符串/代码方式)?当涉及到预定义的编码时,为什么又是这些数据字符串?
谢谢
fonts - CFF 字体标题中的“offSize”字段适用于哪些偏移量?
“紧凑字体格式规范”解释(第 13 页)标题中的offSize
字段“指定相对于 CFF 数据开头的所有偏移量 (0) 的大小”。文档中提到了各种偏移量,但它们中的大多数(全部?)要么有自己的单独offSize
字段(例如,在第 12 页的表 7 中),要么它们被编码为 dict 数据操作数(例如charset
,Top DICT 中的字段,在第 15 页的表 9)。
哪些偏移量实际上使用了标头中的offSize
字段?