ghostscript
)从版本 4 开始,ghostscript
已经支持 TrueType 字体作为编译时选项。两个 Debian 软件包提供了 ghostscript
main/binary-*/text/gs_*.deb
是符合 DFSG 的版本 5.10,non-free/binary-*/gs-aladdin_*.deb
是不符合 DFSG 的版本 5.50。
Ghostscript
以使用 TrueType 字体
如果你有一个正常工作的 xfstt
服务器,那么很容易配置 ghostscript
以使用 TrueType 字体。我们只需执行以下命令
# xfstt --gslist --sync >> /etc/gs.Fontmap
在实践中,我发现对 xfstt
生成的字体定义进行一些小的更改是有益的。首先,如果字体名称不包含任何空格,我将名称更改为常用表示法。如果字体名称包含空格,我将所有空格替换为破折号,并将原始名称作为别名添加到新名称。
最后,我在所有字体名称前添加 TTF-
(或 MS-
),以最大限度地减少 TrueType 字体与现有字体名称相同而引起的问题。
因此
(Arial) (/usr/share/fonts/truetype/arial.ttf) ;
(Arial Bold Italic) (/usr/share/fonts/truetype/arialbi.ttf) ;
变为
/MS-Arial (/usr/share/fonts/truetype/arial.ttf) ;
/MS-Arial-Bold-Italic (/usr/share/fonts/truetype/arialbi.ttf) ;
(Arial Bold Italic) /MS-Arial-Bold-Italic ;
/Arial /MS-Arial ;
这些别名确保 ghostscript
和 xfstt
仍然可以通过通用名称指定相同的字体。
更重要的是,通过字体名称的更改,可以指示 ghostscript
使用 TrueType 字体而不是标准字体。文档声称也可以使用括号表示法,但我无法使其工作。
例如,我们可以通过将以下行添加到 /etc/gs.Fontmap
文件中,指示 ghostscript
将 Helvetica 字体替换为 Microsoft 的免费 Arial 字体
/Helvetica /MS-Arial ;
/Helvetica-Oblique /MS-Arial-Italic ;
/Helvetica-Bold /MS-Arial-Bold ;
/Helvetica-BoldOblique /MS-Arial-Bold-Italic ;
可以为其他标准字体定义类似的别名。这些别名在为 Windows 客户端提供服务的 samba
打印机上最有用。
验证 ghostscript
是否正确配置为使用 TrueType 字体的最佳方法是打印字体样本页。假设你正在运行 ghostscript
5.50 并且它是你的默认打印队列,你可以使用以下命令打印所有 TrueType 字体
# xfstt --gslist --sync | printfont
其中 printfont
是以下 shell 脚本
#!/bin/sh
set -e
IFS= ')'
while read fontname rest
do
cat << EOM | lpr
%!PS
(/usr/lib/ghostscript/5.50/prfont.ps) run
$fontname) DoFont
EOM
done
如果你只想打印少量字体,以下脚本将更容易使用
#!/bin/sh
set -e
while read -p "Font name, or ^D to exit: " fontname
do
cat << EOM | lpr
%!PS
(/usr/lib/ghostscript/5.50/prfont.ps) run
$fontname DoFont
EOM
done