Использование Ghostscript
Предположим, что вам необходимо вывести на принтер, не поддерживающий PostScript, сгенерированные Linux-приложением PostScript-данные. В этом случае система должна быть сконфигурирована так, чтобы данные, предназначенные для печати, обрабатывались программой Ghostscript. Ghostscript (http://www.cs.wisc.edu/~ghost/
) — это PostScript-интерпретатор, выполняющийся не на принтере, а на компьютере. GNU-версия Ghostscript, ориентированная на работу с различными типами принтеров, поставляется в составе большинства дистрибутивных пакетов Linux. Если какой-то из принтеров не поддерживается данной реализацией Ghostscript, можно применить специальные драйверы либо воспользоваться более современным продуктом Ghostscript производства Aladdin. Информацию о совместимости различных принтеров с интерпретаторами Ghostscript можно найти, обратившись по адресу http://www.linuxprinting.org/printer_list.cgi
.
В очереди печати Linux, настроенной для совместной работы с Ghostscript, присутствует фильтр печати, который распознает тип файла. В отличие от фильтра, который используется в очереди, обслуживающей PostScript-принтер, данный фильтр передает данные на вход программы Ghostscript. В этом случае необходимо использовать инструментальные средства настройки принтеров, поставляемые в составе дистрибутивного пакета, а также следовать инструкциям по установке конфигурации фильтра. Настроенная подобным образом очередь работает почти идентично очереди PostScript-принтера (вопросы выбора конфигурации Samba и клиентов для такой очереди рассматривались в предыдущем разделе). Для Windows-клиентов надо выбрать универсальный PostScript-драйвер (для лазерных принтеров хорошо подходят драйверы Apple LaserWriter, а для струйных — драйвер QMS magicolor). Проблема, связанная с появлением в составе задания на печать символа , решается так же, как и при использовании PostScript-принтеров.
Некоторые PostScript-драйверы в системе Windows включают в состав PostScript-файлов дополнительные команды, предназначенные для вывода информации на встроенные дисплеи принтеров. Такие команды часто приводят к появлению дополнительных страниц выходных данных с сообщениями типа %% [ LastPage ] %%
. Если вы встретитесь с подобной проблемой, решить ее можно, сменив драйвер в системе Windows. Существует и другое решение. Вам надо найти файл, из которого вызывается интерпретатор Ghostscript, и добавить в строку, содержащую команду gs
, последовательность символов >/dev/null
. В результате сообщения с используемого в обычных условиях выходного устройства Ghostscript будут перенаправлены в файл /dev/null
. В системе Caldera таким файлом является /var/spool/lpd/ имя_очереди /printfilter
. В Red Hat, Mandrake и TurboLinux используется файл /usr/lib/rhs/rhs-printfilters/ps-to-printer.fpi
.
Создание очереди, не обрабатывающей PostScript-данные
Если вы хотите использовать на клиентской машине драйвер, генерирующий информацию в формате, отличном от PostScript, вам надо создать в системе Linux очередь принтера, в которой не предпринимались бы попытки модифицировать данные, переданные на печать. Некоторые фильтры Linux распознают ряд языков и передают соответствующие данные принтеру в неизменном виде, поэтому не исключено, что вам удастся использовать обычную очередь печати. Если же задания, помещенные в такую очередь, исчезают или выводятся в искаженном виде, вам придется создать очередь без обработки (raw queue).
Для создания очереди без обработки надо сформировать обычную очередь печати, а затем внести изменения в файл /etc/printcap
(при условии, что на вашем компьютере используется система печати BSD или LPRng). В частности, вам надо удалить из описания очереди строку if=
либо задать пустое значение if
. Эта строка определяет фильтр печати Linux, и ее удаление приведет к тому, что задание будет передаваться из очереди на принтер в неизменном виде. Пример описания очереди приведен ниже.
lр|hp4000|raw:\
:lp=/dev/lp0:\
:sd=/var/spool/lpd/lp:\
:mx#0:\
:sh:\
:if=:
В данном примере указаны три имени принтера: lp
, hp4000
и raw
. Данные из этой очереди выводятся на устройство печати /dev/lp0
, а в качестве каталога спулера используется /var/spool/lpd/lp
. (Заметьте, что указанный здесь каталог отличается от каталога спулера Samba. Файл сначала располагается в каталоге спулера Samba, а затем перемещается в /var/spool/lpd/lp
.) Опция mx#0
снимает ограничения на размер файла печати, a sh
запрещает вывод страницы заголовка. Поскольку в строке if=
не указан фильтр печати, данные передаются в неизменном виде.
Читать дальше