ghostscript
)Starting with version 4, ghostscript
has supported TrueType
fonts as a compile-time option. Two Debian packages provide ghostscript
:
main/binary-*/text/gs_*.deb
is DFSG-compliant version 5.10,non-free/binary-*/gs-aladdin_*.deb
is non-DFSG-compliant
version 5.50.
Ghostscript
to use TrueType fonts
If you have a working xfstt
server, it is easy to configure
ghostscript
to use TrueType fonts. We simply execute the
following command:
# xfstt --gslist --sync >> /etc/gs.Fontmap
In practice, I've found it beneficial to make several small changes
to the font definitions generated by xfstt
. First, if a font name
does not contain any spaces, I change the name to the usual notation.
If a font name does contain spaces, I replace all spaces with dashes
and the original name is added as an alias to the new name.
Finally, I prepend TTF-
(or MS-
) to all font names to
minimize problems caused by a TrueType font having an identical
name to an preexisting font.
Thus
(Arial) (/usr/share/fonts/truetype/arial.ttf) ;
(Arial Bold Italic) (/usr/share/fonts/truetype/arialbi.ttf) ;
becomes
/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 ;
The aliases ensure that ghostscript
and xfstt
can still
specify the same font by a common name.
Much more significantly, with the change in the font names it's possible
to instruct ghostscript
to use TrueType fonts instead of the
standard fonts. The documentation claims that this is also possible with
parenthetical notation, but I could not get it to work.
For instance, we can instruct ghostscript
to replace Helvetica fonts
with Microsoft's free Arial fonts by appending the following lines to the
/etc/gs.Fontmap
file:
/Helvetica /MS-Arial ;
/Helvetica-Oblique /MS-Arial-Italic ;
/Helvetica-Bold /MS-Arial-Bold ;
/Helvetica-BoldOblique /MS-Arial-Bold-Italic ;
Similar aliases can be defined for the other standard fonts.
These aliases would be most useful on samba
printers serving
Windows clients.
The best way to verify that ghostscript
is properly configured to use
TrueType fonts is to print font specimen pages. Assuming that you're
running ghostscript
5.50 and that it is your default print queue,
you can print all TrueType fonts with the following command:
# xfstt --gslist --sync | printfont
where printfont
is the following shell script
#!/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
If you wish to print only a few fonts, the following script will be easier to use:
#!/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