Next Previous Contents

## 10. Ghostscript

GhostscriptЭто невероятно важная программа для печати в Linux. Большинство печатающего программного обеспечения под Unix генерирует PostScript, поддержка которого принтером обходится примерно в $100 долларов на каждый принтер. Тем не менее Ghostscript, является свободным и генерирует вывод на языке вашего принтера из PostScript. Когда он связан c описанием драйвера принтера PDQ или с входным фильтром вашего `lpd`, это дает вам виртуальный PostScript-принтер и значительно упрощает жизнь.

Ghostscript доступен в двух формах. Коммерческая версия Ghostscript, называемая Aladdin Ghostscript, mможет быть использована свободно для персонального использования, но не может распространяться с коммерческими дистрибутивами Linux. В общем она примерно на год впереди свободной версии Ghostscript; в настоящее время, например, она поддерживает много цветных струйных принтеров, в то время как старый Ghostscripts не делает этого.

Свободная версия Ghostscript называется GNU Ghostscript, и это просто устаревшая версия Aladdin Ghostscript любезно предоставленная для GNU. (Спасибо славному Aladdin за эту договоренность; больше производителей программного обеспечения должны поддерживать свободное программное обеспечение этим способом, если они не могут сделать распространение кода в терминах GPL).

Что бы вы не делали с `gs`, будьте уверены что запускаете его с опцией запрещающей доступ к файлам (`-dSAFER`). PostScript это полнофункциональный язык, и плохая программа на PostScript может доставить вам достаточно неприятностей.

Честно говоря разговор на PDF, (Формате Переносимого Документа Adobe) это в действительности чуть больше чем организованный PostScript в сжатом файле. Ghostscript может обрабатывать ввод в PDF также как это делает с PostScript. Так вы можете быть первым в вашем квартале с принтером имеющим возможность обработки PDF.

## 10.1 Обращение к Ghostscript

Обычно ghostscript будет запускаться magic-фильтром, которым вы пользуетесь (Я рекомендую пакет apsfilter, если ваш поставщик не поставил вам этот пакет), но для целей отладки очень часто удобно запускать его прямо.

`gs -help` даст вам коротки, информативный список опций и доступных драйверов (заметим, что этот список является списком вкомпилированных драйверов, не основным списком доступных драйверов).

Вы можете запустить gs для тестирования примерно так: `gs options -q -dSAFER -sOutputFile=/dev/lp1 test.ps`.

## 10.2 Настройка вывода Ghostscript

Существует набор вещей которые вы можете сделать если вывод gs не удовлетворителен (пожалуйста вы можете латать что угодно, поскольку вы имеете исходные тексты).

Некоторые из этих опций, и другие описанные в руководстве пользователя Ghostscript (файл `Use.htm` в дистрибутиве Ghostscript; в вашей системе эта документация может быть установлена в каталоги /usr/doc или /usr/share/doc) являются великолепными кандидатами для настроек драйвера в вашем объявлении драйвера PDQ.

### Расположение вывода и его размер

Расположение, размер и коэффициент сжатия изображения на странице контролируются принтер-специфичным драйвером в ghostscript. Если вы обнаружили, что ваши страницы получаются слишком короткими, или слишком длинными или со слишком большим фактором увеличения, вы можете посмотреть в исходный код модуля драйвера и выровнять необходимые для вас параметры. К сожалению каждый драйвер написан по разному, так что я не могу сказать что исправлять, но большинство из них довольно неплохо описаны.

### Гамма, размер точек и т.п.

Большинство не лазерных принтеров страдают от факта, что их точки немного больше. В результате картинки получаются слишком темными. Если вы страдаете от этой проблемы, то вы должны использовать свою собственную функцию переноса. Просто создайте следующий файл в директории `lib` ghostscript и добавьте его имя в вызов gs перед именем нужного файла. Вам может быть необходимо поиграть со значениями для настройки на ваш принтер. Более низкие значения дают более яркую печать. Особенно если ваш драйвер использует алгоритм Floyd-Steinberg для растеризации цветов, то более низкие значения (0.2 - 0.15) вероятно будут хорошим выбором.

> `

>     ---8<---- gamma.ps ----8<---
>     %!
>     %transfer functions for cyan magenta yellow black
>     {0.3 exp} {0.3 exp} {0.3 exp} {0.3 exp} setcolortransfer
>     ---8<------------------8<---

> `

Также возможно чинить принтера, которые имеют некоторый сорт проблем с цветом с помощью подбора значений указанных выше. Если у вас есть такая проблема, я рекомендую вам использовать файл colorcir.ps, который идет вместе с ghostscript (в поддиректории examples/), как тестовую страницу.

Для многих драйверов современных струйных принтеров существуют опции командной строки, или отдельный файлы upp для драйверов, которые реализуют изменения гаммы и других параметров и адаптируют принтер для разных типов бумаги. Вы должны заглянуть в них, до экспериментирования с Postscript, для того чтобы исправить проблемы.

### Цветная печать в Ghostscript

Смешение по умолчанию в Ghostscript оптимизован для устройств с маленьким разрешением. Будет производится смешение с предпочтением огрубления при попытке создания вывода с качеством 60ppi (не путайте с dpi, ppi - это "видимые" цветные пикселы на дюйм, которые вы получите после смешения). Это создаст более бедный вывод на современных цветных принтерах; в частности, струйные принтера с фотобумагой могут использовать лучшие настройки ppi.

Для выравнивания этого используйте ключ Ghostscript -dDITHERPPI=x, где x это используемое значение. Таким способом вы можете или не можете добиться успеха со всеми драйверами; многие из новых драйверов реализуют свое собственное смешение и не обращают внимания на настройки. Некоторые драйвера могут использовать либо обычное смешение Ghostscript, либо реализованное в драйвере.

Это дает нам великолепный аргумент в объявлении драйвера PDQ, если это применимо.

Next Previous Contents