PDF规范中“基础14号字体”的字体度量信息

16
我一直在编写软件来解析PDF内容,特别是将内容分成区域的文本。为此,我需要字体度量,如字符位移、字体全局上升、下降和字符边界框等等。简而言之,这种度量应该在PDF中字体定义的FontDescriptor字典中可用。
不幸的是,对于基础字体属于“基础14”标准字体集的字体,FontDescriptor并不是必需的。
我在哪里可以找到或如何生成基础14个字体的字体度量?
3个回答


8
在Linux(可能也适用于Mac OS X)上,您可以轻松使用font2afm脚本从PostScript或TrueType字体文件(.pfa、.pfb、.ttf、.otf)中创建字体度量文件。
如果您没有原始的Base 14,则可以使用Ghostscript提供的克隆版本。这些克隆版本可能使用完全不同的字体名称,但只能通过为每个字形使用完全相同的度量标准来进行克隆。
以下是列出所有基础14字体名称的Ghostscript命令行: Windows:
gswin32c.exe -q -dNODISPLAY -dSAFER -c "systemdict /.standardfonts get == quit"

Linux/Unix/Mac:

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

在最近的Ghostscript版本中,克隆字体的文件名通常与克隆的字体名称匹配。旧版本的GS可能使用了更加神秘的命名约定。以下是字体名称映射到克隆字体的列表:

+===============+========================+==========================+
| 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             |
+---------------+------------------------+--------------------------+

你可以从互联网上的许多地方下载Ghostscript字体(例如从这里)。之后运行此命令:
font2afm StandardSymL.ttf

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


在我的电脑上,字体的名称略有不同。我通过查找ghostscript的“Fontmap”文件(位于“/usr/share/ghostscript/9.54.0/Resource/Init”中)找到了新名称。 - Florian Moser

1

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接