Начиная с версии 4, в ghostscript встроена внутренняя поддержка шрифтов TrueType. ghostscript представлен в Debian двумя пакетами:
main/binary-*/text/gs_*.deb - это DFSG-совместимая версия 5.10,
non-free/binary-*/gs-aladdin_*.deb - это не-DFSG-совместимая версия 5.50.
Если у вас есть работающий сервер 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, вместо обычных. В документации сказано, что это возможно сделать и при помощи вводной нотации, но я так и не смог этого сделать.
Мы можем, например, указать ghostscript заменить шрифт Helvetica на бесплатный шрифт Microsoft Arial, добавив в файл /etc/gs.Fontmap следующие строки:
/Helvetica /MS-Arial ; /Helvetica-Oblique /MS-Arial-Italic ; /Helvetica-Bold /MS-Arial-Bold ; /Helvetica-BoldOblique /MS-Arial-Bold-Italic ; |
Подобные алиасы можно определить и для других стандартных шрифтов. Эти алиасы очень хороши, в случае использования samba-принтеров, работающих с Windows-клиентами.
Самый лучший способ проверить, что ghostscript правильно настроен на использование шрифтов TrueType - это напечатать образцы шрифтов. Предполагая, что у вас запущен ghostscript версии 5.50, и что он является вашей очередью печати по умолчанию, вы можете напечатать образцы всех шрифтов TrueType командой:
# xfstt --gslist --sync | printfont |
где printfont - это следующий скрипт:
#!/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 "Введите имя шрифта или ^D для выхода: " fontname do cat << EOM | lpr %!PS (/usr/lib/ghostscript/5.50/prfont.ps) run $fontname DoFont EOM done |