Метрики шрифта для «базовых 14» шрифтов в спецификации PDF - PullRequest
12 голосов
/ 17 июня 2011

Я пишу программное обеспечение для анализа содержимого PDF-файлов, особенно текста, разбитого на регионы.Для этого мне нужны метрики шрифта, такие как смещение глифа, всплытие по всему шрифту, спуск и ограничивающий прямоугольник глифа и т. Д. Короче, тип метрики, который должен быть доступен в словаре FontDescriptor определения шрифта в PDF.

К сожалению, FontDescriptor не нужно включать для шрифтов, базовый шрифт которых является одним из набора стандартных шрифтов "base 14".

Где я могу найти или как я могу сгенерировать метрики шрифта длябазовые 14 шрифтов?

Ответы [ 3 ]

9 голосов
/ 28 июня 2011
5 голосов
/ 17 июня 2011

В Linux (и, возможно, также в Mac OS X) вы можете легко использовать сценарий font2afm, который создает файлы метрик шрифта из шрифтов PostScript или TrueType (.pfa, .pfb, .ttf, .otf).

Если у вас нет оригинальной Base 14 , вы можете использовать клоны, предоставленные Ghostscript. Эти клоны могут использовать совершенно разные имена шрифтов, но они могут быть только клонами, используя одни и те же метрики для каждого глифа.

Вот командная строка Ghostscript, в которой перечислены все основные 14 шрифтов:

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 должны содержать метрики шрифта для шрифта Symbol в стандартном формате .afm ....

1 голос
/ 17 июня 2011

Я уверен, что эти метрики шрифта широко доступны. Например, в моем Ubuntu они находятся в /usr/share/fonts/type1/gsfonts/ - возможно, вы не узнаете некоторые имена шрифтов, но они метрически совместимы с Helvetica и т. Д.

...