Starting with version 4,
ghostscript has supported TrueType fonts as a compile-time option. Two Debian packages provide
main/binary-*/text/gs_*.debis DFSG-compliant version 5.10,
non-free/binary-*/gs-aladdin_*.debis non-DFSG-compliant version 5.50.
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
MS-) to all font names to minimize problems caused by a TrueType font having an identical name to an preexisting font.
(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 ;
The aliases ensure that
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
/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
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