的字体指标PDF规范中的字体

的字体指标PDF规范中的字体

本文介绍了“基准14”的字体指标PDF规范中的字体的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

不幸的是,FontDescriptor不需要包含基本字体为标准字体的base 14集合中的字体。

在哪里可以找到或者如何生成基本的14种字体的字体指标?

解决方案

也可能在Mac OS X上),您可以使用 font2afm 脚本从PostScript或TrueType字体创建字体指标文件(.pfa,.pfb,.ttf,.otf )。
$ b

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



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

Windows:

  gswin32c.exe -q -dNODISPLAY -dSAFER -csystemdict /.standardfonts get == quit





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

在最近版本的Ghostscript中,克隆字体的文件名通常匹配克隆的字体名称。较早的GS版本可能使用了更加神秘的命名规则。这里是克隆字体的字体映射列表:

  + ============= == + ======================== + ====================== ==== + 
|基地14名称| Ghostscript名称|字体文件名(旧的GS)|
+ =============== + ======================== + ==== ====================== +
|快递| | |
|标准| NimbusMonL-Regu | n022003l.pfb |
|粗体| NimbusMonL-Bold | n022004l.pfb |
|斜体| NimbusMonL-ReguObli | n022023l.pfb |
|大胆的| NimbusMonL-BoldObli | n022024l.pfb |
+ --------------- + ------------------------ + ---- ---------------------- +
| Helvetica | | |
|标准| NimbusSanL-Regu | n019003l.pfb |
|粗体| NimbusSanL-Bold | n019004l.pfb |
|斜体| NimbusSanL-ReguItal | n019023l.pfb |
|大胆的| NimbusSanL-BoldItal | n019024l.pfb |
+ --------------- + ------------------------ + ---- ---------------------- +
| Times-Roman | | |
|标准| NimbusRomNo9L-Regu | n021003l.pfb |
|粗体| NimbusRomNo9L-Medi | n021004l.pfb |
|斜体| NimbusRomNo9L-ReguItal | n021023l.pfb |
|大胆的| NimbusRomNo9L-MediItal | n021024l.pfb |
+ --------------- + ------------------------ + ---- ---------------------- +
|符号| StandardSymL | s050000l.pfb |
+ --------------- + ------------------------ + ---- ---------------------- +
| ZapfDingbats |标志| d050000l.pfb |
+ --------------- + ------------------------ + ---- ---------------------- +



这里)。然后运行f.e.这个命令:

  font2afm StandardSymL.ttf 

以及生成的文件 StandardSymL.afm 应包含标准.afm格式的Symbol字体的字体指标....


I've been writing software to parse content from PDFs, specifically text broken into regions. For this I need font metrics such as glyph displacements, font-wide ascent, descent and glyph bounding box, etc. In short, the type of metrics that should be available in the FontDescriptor dictionary of a font definition in a PDF.

Unfortunately a FontDescriptor doesn't have to be included for fonts whose base font is one of the "base 14" set of standard fonts.

Where can I find or how can I generate font metrics for the base 14 fonts?

解决方案

On Linux (and probably on Mac OS X too) you can easily use the font2afm script which creates font metrics files from PostScript or TrueType fonts (.pfa, .pfb, .ttf, .otf).

If you don't have the original Base 14 available, you can use the clones provided by Ghostscript. These clones may use completely different font names, but they can only be clones by using the very same metrics for each glyph.

Here is a Ghostscript commandline, that lists you all the base 14 fontnames:

Windows:

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

Linux/Unix/Mac:

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

In recent versions of Ghostscript, the filenames for cloned fonts usually match the clone's fontname. Older GS versions may have used more cryptic nameing conventions. Here is the list of fontname mappings to the cloned fonts:

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

You can download the Ghostscript fonts from many places on the 'net (f.e. from here). Then run f.e. this command:

font2afm StandardSymL.ttf

and the resulting file, StandardSymL.afm should contain the font metrics for the Symbol font in standard .afm format....

这篇关于“基准14”的字体指标PDF规范中的字体的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-23 09:43