Font HOWTO: Making Fonts Available To Ghostscript

Далее Назад Оглавление

5. Обеспечение доступа к фонтам для Ghostscript

Чтобы сделать фонт доступным для ghostscript, достаточно сообщить ghostscript, где расположен файл(ы) соответствующего фонта. Для этого необходимо подредактировать файл /usr/share/ghostscript/version/Fontmap. Этот файл имеет очень простой формат, почти очевидный, если его внимательно просмотреть.

5.1 Type1

Добавление фонтов Type1 осуществляется очень просто. Запустите type1inst в каталоге, содержащем файл фонта. type1inst создаст файл с именем Fontmap. Присоедините этот файл к ghostscript-овскому файлу Fontmap.

5.2 True Type

Добавление фонтов truetype немного сложнее, потому что мы должны получить имя фонта. Первый способ сделать это (увы, грубой силой) состоит в использовании конвертера TrueType фонтов в Type1 ttf2pt1 и последующем извлечении имени фонта из файла afm (вероятно должен существовать и более эффективный путь! но этот способ работает, как бы уродлив он не был). Вы можете сделать это примерно так:

                ttf2pt1 -A fontname - 2 > /dev/null | grep FontName
Затем Вы добавляете в ghostscript-овский файл Fontmap строку правильного формата, примерно так:
        some-font       (/usr/share/fonts/subdirectory/somefont.pbf);
Этот способ, конечно, работает, но попробуйте сделать это для 500 фонтов! Такого рода вещи просто требуют создания короткого скрипта на Perl:
#!/usr/bin/perl
# ttfontmap -- generate fontmap file for TrueType fonts
my $directory=shift || print STDERR "Usage: ttfontmap {directory}\n";

$directory=~s/\/$//;

for my $fontname ( glob ( "$directory/*.ttf" ) )
{
    open ( R, "sh -c \"ttf2pt1 -A $fontname - 2>/dev/null\" |" );
    while ( <R> )
    {
        if ( $_ =~ /^FontName/ )
        {
            s/^FontName\s*//;
            chomp;
            print "/" .  $_ . "    ($fontname);\n" ;
        }
    }
    close R;
}           
Вы можете скачать этот скрипт.

Чтобы установить этот скрипт, скопируйте его в файл с именем ttfontmap и поместите в один из каталогов, указанных в переменной PATH (например, в /usr/bin). После этого Вы можете запускать его следующим образом:

        ttfontmap directory > output_file
где directory - это каталог, содержащий файлы фонтов. Вы получите output_file, который сможете присоединить к перечню фонтов ghostscript. Примечание: кто-то может заметить, что можно просто запустить команду
        ttfontmap directory >> /usr/share/ghostscript/version/Fontmap
но я не рекомендую этого делать (что будет, если Вы введете ``>'' вместо ``>>''?).

5.3 Использование Ghostscript для предварительного просмотра фонтов

Как только Вы сделали фонты доступными для ghostscript, Вы можете их просмотреть. Это делается путем запуска интерпретатора языка ghostscript на файле prfont.ps из Вашей инсталляции ghostscript. После его запуска напечатайте (введите)

        /Fontname DoFont
где FontName - это имя в ghostscript фонта, который Вы хотите увидеть. Существует несколько разных способов вызвать gs. Например, если Вы хотите создать postscript-файл, который Вы хотите просматривать в одной из более удобных программ, к примеру gv, Вы можете использовать команду
        gs -sDEVICE=pswrite -sOutputFile=somefile.ps  prfont.ps
Воспользовавшись этим способом, Вы сможете также распечатать выходной файл.


Далее Назад Оглавление