Определите шрифты, используемые в файле postscript (.ps) - PullRequest
1 голос
/ 21 апреля 2010

Имеется файл postscript со следующим заголовком

%!PS-Adobe-3.0

Я хотел бы перечислить все шрифты, используемые в файле. Вывод не обязательно должен быть идеальным, но мне нужно убедиться, что я получаю все ссылки на любой используемый шрифт. Я знаю, что есть разные типы шрифтов, и что шрифт может или не может быть встроен в файл postscript.

Моя текущая лучшая идея - выполнить поиск и поиск слова Font без учета регистра и перейти оттуда.

  • Получит ли я все ссылки на шрифты?
  • Есть ли лучший способ добиться этого?

Я склонен использовать .NET / C # в целях разработки, но любое решение приветствуется.

Спасибо

Bernard

UPDATE: Ответ lhf решил проблему, из-за ограничений форматирования и длины. Я добавляю пример рабочего использования на основе его рекомендаций.

Пакетный файл Windows, который можно сохранить в файл .cmd и запустить из командной строки:

REM Prerequisites: 
REM - GPL Ghostscript 8.64 @ http://pages.cs.wisc.edu/~ghost/doc/GPL/gpl864.htm
REM - pdffonts @ 3.02pl4 win32 download @ http://www.foolabs.com/xpdf/download.html

REM Add directories to path, contains ps2pdf and its dependency gswin32c.exe
SET PATH=%PATH%;C:\Program Files\gs\gs8.64\lib;C:\Program Files\gs\gs8.64\bin
REM Add pdffonts directory to path
SET PATH=%PATH%;c:\temp\path-toxpdf-3.02pl4-win32

REM Convert postscript file to pdf file
call ps2pdf input.ps temp.pdf

REM list pdf file fonts
call pdffonts temp.pdf

Пример вывода:

name                                 type              emb sub uni object ID 
------------------------------------ ----------------- --- --- --- ---------
DQRDAA+BCC128Medium-Identity-H       CID TrueType      yes yes no      21  0
MIAVUG+Verdana-Identity-H            CID TrueType      yes yes no      13  0
BKNKQN+Verdana-Identity-H            CID TrueType      yes yes no      10  0

Ответы [ 3 ]

2 голосов
/ 26 апреля 2010

Конвертируйте файл в pdf и затем используйте pdffonts, если он у вас есть.

Если вы занимаетесь программированием на PS, вы можете запустить фиктивный интерпретатор PS (в PS), который игнорирует большинство вещей, кроме findfont.

1 голос
/ 27 апреля 2010

Если файл PostScript соответствует спецификации Условные обозначения структуры документов на языке PostScript , вы можете искать комментарии PostScript, начинающиеся со строк:

%%DocumentNeededResources:
%%DocumentSuppliedResources:
%%DocumentFonts:
%%DocumentNeededFonts:
%%DocumentSuppliedFonts:
0 голосов
/ 08 июля 2010

попробуйте следующее регулярное выражение:

@ "/.*? \ Sfindfont"

это даст вам некоторые дополнительные вещи, но вы можете играть с этим оттуда.

...