我需要读取PFB文件并从中提取字形信息。我找不到特定文件的规格。我有Adobe Type1字体规范。但PFB文件是二进制格式,我无法解码字形信息从它。
我已经在网上搜索了规格说明。但我发现的都是类型1规范或字形信息。但我需要指示如何从PFB文件检索字形信息。
在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
然后,对于Windows上的Ghostscript,执行以下命令转换fontname.pfb
:
gswin32c.exe ^
-q ^
-P- ^
-dSAFER ^
-dNODISPLAY ^
-- ^
"d:/path/to/pfb2pfa.ps" ^
"f:/path/to/fontname.pfb" ^
"e:/path/to/fontname.pfa"
对于Linux, Unix或Mac上的Ghostscript,运行修改后的命令:
gs
-q
-P-
-dSAFER
-dNODISPLAY
--
"/path/to/pfb2pfa.ps"
"/path/to/fontname.pfb"
"/path/to/fontname.pfa"
PFA字体文件是可读的PostScript代码和我的帮助你实现你想要的…
如果不走运,它们可能包含一大块eexec
编码的PostScript。对于完全可读的PostScript代码,也需要解码此代码....