将 AFM 文件转换为 NTF 文件
重要
新式打印平台是 Windows 与打印机通信的首选方式。 建议使用 Microsoft 的 IPP 收件箱类驱动程序以及打印支持应用 (PSA) 来自定义 Windows 10 和 11 中的打印体验,以便进行打印机设备开发。
有关详细信息,请参阅新式打印平台和打印支持应用设计指南。
对于 Windows 2000 及更高版本,必须将 Adobe Font Metrics (AFM) 文件转换为 .ntf 文件。 Windows 驱动程序开发工具包 (DDK) 中提供了一个用于执行此类转换的命令行工具,名为 makentf.exe。
要转换一个或多个 .afm 文件,请使用以下命令语法:
makentf {-win32|-win64} **** [-v]**** [-o] **** NTF_FileName.ntf AFM_FileNames
其中,NTF_FileName 是要生成的 .ntf 文件名,AFM_FileNames 是一组要转换的一个或多个 AFM 文件。
支持以下命令行选项:
-win32
为 Win32 驱动程序创建 NTF 文件。 如果指定了此命令行选项,则不能指定 -win64。
-win64
为 Win64 驱动程序创建 NTF 文件。 如果指定了此命令行选项,则不能指定 -win32。
-v
“详细”: 此选项将创建一个命令输出流,其中包含正在生成的 NTF 文件结构的文本显示。
-o
省略标准西方字形集。 默认情况下,Makentf.exe 在生成 .ntf 文件时会包含标准西方字形集。 如果要创建多个 .ntf 文件,只要所有文件将一起使用,就只需在其中一个文件中包含西方字形集。 例如,假设你要创建一个包含罗马字体指标的 .ntf 文件和一个包含日文字体指标的 .ntf 文件。 可以使用以下命令:
makentf -win32 roman.ntf roman1.afm roman2.afm roman3.afm
makentf -win32 -o jpn.ntf jpn1.afm jpn2.afm jpn3.afm
如果同时使用这些文件,西方字形集信息将始终从 roman.ntf 中获取,因此不需要在 jpn.ntf 中重复信息,但会占用额外空间。 另一方面,如果要单独使用 jpn.ntf,则不必指定 -o。
还支持第二种命令语法,如下所示:
makentf filename
其中 filename 是接收输出文本的文件名。 此语法会导致 Makentf.exe 创建一个文件,其中包含 PostScript 字形名称列表和 Makentf.exe 所知道的每个代码页的 Unicode 值。
WDK 还提供了一个附加文件 PSFamily.dat,该文件必须位于包含 Makentf.exe 的同一目录中。 附加文件是一个文本文件,它为 Makentf.exe 提供每种字体的显示名和系列名。
在转换标准 .afm 文件之前,必须添加与下例类似的一行:
Comment UniqueID IDnumber
其中 IDnumber 表示字体的唯一标识符,由字体供应商发布。
在处理东亚字体的 .afm 文件时,Makentf.txt 需要一些额外的 .map 和 .ps 文件,这些文件必须与 -o 和 PSFamily.dat 位于同一目录下。 WDK 中提供的附加 .map 和 .ps 文件(连同 PSFamily.dat)是为字体创建从 Unicode 代码到 CID 的映射表所必需的。 有关详细信息,请参阅将东亚版 AFM 文件转换为 NTF 文件。
将被转换为 .ntf 文件的 .afm 文件可以包含 FontBBox2 关键字。 此关键字的参数类似于 FontBBox 参数(请参阅 Adobe Systems 公司发布的 Adobe 字体度量文件格式规范),但 FontBBox2 参数描述的是特定字符集(如 90 ms)中使用的字形的边界框,而 FontBBox 参数描述的是 .afm 文件中描述的所有字符的边界框。 如果找不到 FontBBox2,则使用为 FontBBox 指定的值作为边界框。