我一直在编写软件来解析PDF中的内容,特别是分成区域的文本。为此我需要字体度量,如字形位移,字体范围上升,下降和字形边界框等。简而言之,PDF格式定义的FontDescriptor字典中应该可用的度量类型。
遗憾的是,对于其基本字体是“基本14”标准字体集之一的字体,不必包含FontDescriptor。
我在哪里可以找到或如何为base 14字体生成字体指标?
在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字体的字体度量....
我确信这些字体指标可以广泛使用。例如,在我的Ubuntu中,他们在/usr/share/fonts/type1/gsfonts/
- 也许你不认识一些字体名称,但它们与Helvetica等在度量上是兼容的。