Нужна помощь в поиске документа спецификации для файла двоичного шрифта Adobe Type1 - PFB - PullRequest
2 голосов
/ 19 апреля 2011

Мне нужно прочитать файлы PFB и извлечь из него информацию о Glyph. Я не могу найти спецификацию для конкретного файла. У меня есть спецификация шрифта Adobe Type1. Но файл PFB в двоичном формате, и я не могу декодировать информацию глифа из него.

Я искал спецификацию в интернете. Но все, что я нахожу, это спецификация типа 1 или информация о глифе. Но мне нужна инструкция для получения информации о глифе из файла PFB.

Заранее спасибо.

1 Ответ

1 голос
/ 01 мая 2011

В Linux / Unix вы можете найти утилиту pfb2pfa.Этот инструмент преобразует файлы .pfb в его представление ASCII (с суффиксом .pfa ).Просто запустите:

pfb2pfa /path/to/input-fontfile.pfb /path/to/output-fontfile.pfa

Вы также можете использовать Ghostscript для преобразования файлов шрифтов PFB в их форму PFA.

Сначала сохраните это содержимое в файл и назовите его pfb2pfa.ps:

[ shellarguments {
  counttomark 2 eq {
    /pfa exch def /pfb exch def pop
    /in1 pfb (r) file def
    /in in1 true /PFBDecode filter def
    /out pfa (w) file def
    { in read not { exit } if out exch write } loop
    out closefile in closefile in1 closefile
    quit
  } {
    cleartomark (Usage: pfbtopfa input.pfb output.pfa) = flush
  } ifelse
  } {
  pop
} ifelse

Затем для Ghostscript в Windows выполните эту команду для преобразования fontname.pfb:

 gswin32c.exe ^
   -q ^
   -P- ^
   -dSAFER ^
   -dNODISPLAY ^
   -- ^
   "d:/path/to/pfb2pfa.ps" ^
   "f:/path/to/fontname.pfb" ^
   "e:/path/to/fontname.pfa"

Для Ghostscript в Linux, Unix или Mac выполните эту измененную команду:

 gs \
   -q \
   -P- \
   -dSAFER \
   -dNODISPLAY \
   -- \
   "/path/to/pfb2pfa.ps" \
   "/path/to/fontname.pfb" \
   "/path/to/fontname.pfa"

Файлы шрифтов PFA - это читаемый код PostScript, и я помогу вам достичь того, чего вы хотите ...

Если вам не повезет, они могут содержать большой раздел eexec -кодированного PostScript.Этот код нужно декодировать и для полностью читаемого кода PostScript ....

...