我需要读取 PFB 文件并从中提取字形信息。我找不到特定文件的规范。我有 Adobe Type1 字体规范。但是 PFB 文件是二进制格式的,我无法从中解码字形信息。
我已经在互联网上搜索了规范。但我发现的只是类型 1 规范或字形信息。但我需要有关如何从 PFB 文件中检索字形信息的说明。
提前致谢。
我需要读取 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
-encoded PostScript。这个你也需要解码以获得完全可读的 PostScript 代码....