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

时间:2011-06-17 08:57:04

标签: pdf fonts ghostscript

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

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

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

3 个答案:

答案 0 :(得分:9)

答案 1 :(得分:5)

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

如果您没有可用的原始 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字体的字体指标....

答案 2 :(得分:1)

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