给定一个具有以下标头的 postscript 文件
%!PS-Adobe-3.0
我想列出文件中使用的所有字体。输出不一定是完美的,但我需要确保我获得了对正在使用的任何字体的所有引用。我知道有不同类型的字体,并且字体可能会或可能不会嵌入到 postscript 文件中。
我目前最好的想法是不区分大小写地 grep/搜索单词 Font 并从那里开始。
- 这会给我所有的字体参考吗?
- 有更好的方法来实现这一点吗?
我倾向于将 .NET/C# 用于开发目的,但任何解决方案都值得赞赏。
谢谢,
伯纳德
更新:lhf 的回答解决了这个问题,由于格式和长度限制,我正在根据他的建议添加一个工作使用示例。
可以保存到 .cmd 文件并从命令提示符运行的 Windows 批处理文件:
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