下一页 上一页 目录

4. 打印 (ghostscript)

从版本 4 开始,ghostscript 已经支持 TrueType 字体作为编译时选项。两个 Debian 软件包提供了 ghostscript

两个版本都支持 TrueType 字体。

4.1 配置 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                               ;

这些别名确保 ghostscriptxfstt 仍然可以通过通用名称指定相同的字体。

更重要的是,通过字体名称的更改,可以指示 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 打印机上最有用。

4.2 打印 TrueType 字体样本

验证 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


下一页 上一页 目录