Печать (ghostscript)

Начиная с версии 4, в ghostscript встроена внутренняя поддержка шрифтов TrueType. ghostscript представлен в Debian двумя пакетами:

Обе версии поддерживают шрифты TrueType.

Настройка 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, вместо обычных. В документации сказано, что это возможно сделать и при помощи вводной нотации, но я так и не смог этого сделать.

Мы можем, например, указать 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-клиентами.

Печать образцов шрифтов TrueType

Самый лучший способ проверить, что 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