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

问题描述 投票:12回答:3

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

遗憾的是,对于其基本字体是“基本14”标准字体集之一的字体,不必包含FontDescriptor。

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

pdf fonts ghostscript
3个回答
5
投票

在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"

的Linux / Unix / Mac的:

gs -q -dNODISPLAY -dSAFER -c "systemdict /.standardfonts get == quit"

在最新版本的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             |
+---------------+------------------------+--------------------------+

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

font2afm StandardSymL.ttf

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



1
投票

我确信这些字体指标可以广泛使用。例如,在我的Ubuntu中,他们在/usr/share/fonts/type1/gsfonts/ - 也许你不认识一些字体名称,但它们与Helvetica等在度量上是兼容的。

© www.soinside.com 2019 - 2024. All rights reserved.