PDF规范中"base 14"字体的字体度量标准

Kar*_*ard 13 pdf fonts ghostscript

我一直在编写软件来解析PDF中的内容,特别是分成区域的文本.为此,我需要字体指标,如字形位移,字体范围上升,下降和字形边界框等.简而言之,PDF格式定义的FontDescriptor字典中应该可用的指标类型.

不幸的是,对于基本字体是"基本14"标准字体集之一的字体,不必包含FontDescriptor.

我在哪里可以找到或如何为base 14字体生成字体指标?

Kur*_*fle 6

在Linux上(也可能在Mac OS X上),您可以轻松使用font2afm从PostScript或TrueType字体(.pfa,.pfb,.ttf,.otf)创建字体度量文件的脚本.

如果您没有可用的原始Base 14,则可以使用Ghostscript提供的克隆.这些克隆可能使用完全不同的字体名称,但它们只能通过对每个字形使用相同的度量标准来克隆.

这是一个Ghostscript命令行,它列出了所有基本的14个字体名称:

视窗:

gswin32c.exe -q -dNODISPLAY -dSAFER -c "systemdict /.standardfonts get == quit"
Run Code Online (Sandbox Code Playgroud)

的Linux/Unix/Mac的:

gs -q -dNODISPLAY -dSAFER -c "systemdict /.standardfonts get == quit"
Run Code Online (Sandbox Code Playgroud)

在最新版本的Ghostscript中,克隆字体的文件名通常与克隆的fontname相匹配.较旧的GS版本可能使用了更多神秘的命名约定.以下是克隆字体的fontname映射列表:

+===============+========================+==========================+
| Base 14 name  | Ghostscript name       | Font filename (older GS) |
+===============+========================+==========================+
| Courier       |                        |                          |
|    standard   | NimbusMonL-Regu        | n022003l.pfb             |
|    bold       | NimbusMonL-Bold        | n022004l.pfb             |
|    italic     | NimbusMonL-ReguObli    | n022023l.pfb             |
|    bolditalic | NimbusMonL-BoldObli    | n022024l.pfb             |
+---------------+------------------------+--------------------------+
| Helvetica     |                        |                          |
|    standard   | NimbusSanL-Regu        | n019003l.pfb             |
|    bold       | NimbusSanL-Bold        | n019004l.pfb             |
|    italic     | NimbusSanL-ReguItal    | n019023l.pfb             |
|    bolditalic | NimbusSanL-BoldItal    | n019024l.pfb             |
+---------------+------------------------+--------------------------+
| Times-Roman   |                        |                          |
|    standard   | NimbusRomNo9L-Regu     | n021003l.pfb             |
|    bold       | NimbusRomNo9L-Medi     | n021004l.pfb             |
|    italic     | NimbusRomNo9L-ReguItal | n021023l.pfb             |
|    bolditalic | NimbusRomNo9L-MediItal | n021024l.pfb             |
+---------------+------------------------+--------------------------+
| Symbol        | StandardSymL           | s050000l.pfb             |
+---------------+------------------------+--------------------------+
| ZapfDingbats  | Dingbats               | d050000l.pfb             |
+---------------+------------------------+--------------------------+
Run Code Online (Sandbox Code Playgroud)

您可以从'net(fe from here)上的许多地方下载Ghostscript字体.然后运行fe这个命令:

font2afm StandardSymL.ttf
Run Code Online (Sandbox Code Playgroud)

和生成的文件,StandardSymL.afm应包含标准.afm格式的Symbol字体的字体度量....