2

有没有人有任何指针,我可以在其中找到有关如何围绕 CFF 字体创建 opentype 包装器的额外信息?

目前我有一个 CFF 文件解析器,因此我可以从中获取各种信息(cmap、字形名称、宽度、名称等)。鉴于此信息,我无法创建 Opentype(类似 truetype 格式)包装器,因此我可以使用 GDI 在 Windows 上使用该字体;GDI 不会加载 Opentype 字体,我唯一知道的是它无法加载字体。

有谁知道任何附加信息、验证应用程序、示例代码、获取附加信息为什么字体不能从 Windows 等加载?

注意:我正在寻找如何做到这一点的信息,而不是实用程序和/或转换工具。

4

4 回答 4

1

到目前为止,我有 3 个库作为参考:

  1. FreeType:主要在cff包中,主要入口是cff\cffload.c,现在在github
  2. FontForge:fontforge\parsettf.c,仍在 sf.net
  3. 字体工具:fonttools\cffLib.py,在 sf.net
  4. ots 工具:http ://code.google.com/p/ots/source/browse/trunk/src/cff.cc

在 parsettf.c 中,George Williams 写道: True Type 是一种非常恶心的格式。...现在我对它的理解更好,它似乎设计得更好,但文档仍然存在冲突。有时很糟糕。

IMO,cff 文档同样糟糕。也许它设计得更好。只是也许,如果我有时间:) 我会确认也许。为什么?看看那些东西的创建时间,太老了。

只有年纪大了有什么好?父母,数学和哲学:)其他任何东西都必须更新!

于 2012-05-15T07:30:05.947 回答
1

CFF(Compact Font Format)主要用于PDF文件中嵌入PostScript字体。您还可以在基于 PostScript 轮廓的 OpenType 字体文件中找到 CFF。

如果您从 PDF 的嵌入字体文件中获得 CFF,您可以从 CFF 的 NameIndex 中获得 PostScript 名称。您应该通过 PostScript 名称找到相应的 OpenType 文件。

如果你从 OpenType 文件中得到 CFF,你为什么要问这个问题?:-D

于 2016-08-30T02:26:04.390 回答
0

我引用这个链接:Raster, Vector, TrueType, and OpenType Fonts

...字体的字形存储在字体资源文件中。...

因此,Windows 从具有它可以理解的格式的文件中加载字形,而不是 CFF 文件,也不是内存中的结构。如果您想在不使用文件转换工具的情况下绘制 CFF 文件,我认为您需要自己加载 CFF 并绘制字形。

要加载 CFF 并确定字形,您可以使用FreeType Project。这是关于 SO 的链接,它解释了如何从 FreeType 源构建 Win32 DLL:Compiling FreeType to DLL (instead of static library)

要绘制字形,您可以从gdipp 项目中获得一些灵感,它是 Windows 文本渲染器的替代品,并包含显示从 FreeType 加载的字形的 Win32 C/C++ 示例代码。

于 2012-01-11T17:53:32.660 回答
0

似乎 CFF 格式被直接嵌入到 OpenType 文件中。微软对 OpenType 文件有一个很好的概述:http: //www.microsoft.com/typography/otspec/otff.htm

于 2012-01-11T18:17:00.890 回答