Font metrics for the “base 14” fonts in the PDF specification

前端 未结 3 705
南笙
南笙 2021-02-05 13:01

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, descen

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2021-02-05 13:16

    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....

提交回复
热议问题