Шрифт:
Интервал:
Закладка:
Запись в файле /etc/printcap выглядит примерно так:
# ЛОКАЛЬНЫЙ djet500
lp|dj|deskjet:
:sd=/var/spool/lpd/dj:
:mx#0:
:lp=/dev/lp0:
:sh:
Каждый элемент файла /etc/printcap начинается со строки, задающей имена принтера (их может быть несколько), разделяемые вертикальной чертой. Затем следует ряд параметров конфигурации, разделенных двоеточиями (обычно каждый параметр заключается в двоеточия с обеих сторон). Каждый параметр имеет вид xx=строка или xx#число, где xx - двухсимвольное имя параметра, а строка и число - присваиваемые ему значения. Если никакого значения не присваивается, переменная является булевой, и ее присутствие означает "истина". Допускаются пустые операторы: два рядом стоящих двоеточия. Строки, начинающиеся символом #, содержат комментарий. Обратная косая черта в конце строки означает, что в следующей строке идет продолжение текущей строки.
Приведенный выше пример записи определяет принтер называемый lp, dj, или deskjet, его спул размещается в директории /var/spool/lpd/dj, максимальный размер задания не имеет ограничения, печать производится на устройство /dev/lp0, и страница с заголовком (с именем пользователя, который отправил задание на печать, и другой информацией) не добавляется в начало задания печати.
Подробнее о том, как создавать такие записи, можно прочитать на справочной странице для printcap. Но о некоторых самых важных (и обязательных) параметрах стоит рассказать здесь, хотя бы просто для примера.
• sd=буферный_каталог. У каждого принтера должен быть свой буферный каталог. Все буферные каталоги должны находиться в одном каталоге (обычно это /var/spool/lpd) и иметь имена, совпадающие с полными именами обслуживаемых ими принтеров. Буферный каталог нужен даже в том случае, если описываемый принтер подключен к другой машине: задания находятся на локальной машине до тех пор, пока они не будут переданы на печать.
• lp=имя_устройства. В таком виде этот параметр должен задаваться только для локального принтера. Если принтер находится на другой машине, вместо имени устройства указывается имя уникального файла, который существует и расположен на локальном диске. Чтобы принтер мог возвращать через указанный файл информацию о своем состоянии, необходимо задать в элементе булеву переменную rw, чтобы устройство было открыто и для чтения, и для записи.
• rm и rp. Во многих случаях в качестве печатающего устройства используется сетевой принтер, подключенный к какому-то другому компьютеру в локальной (или даже глобальной) сети. В таком случае на вашей машине в файле /etc/printcap должны присутствовать две переменные rm и rp. В переменной rm определяется машина, на которую должны посылаться задания, а переменная rp задает имя принтера на этой машине.
• mx. Переменная mx используется для задания максимального размера (в байтах) печатаемого файла. Этот параметр может использоваться системными администраторами для того, чтобы предотвратить отрицательные последствия распространенной ошибки начинающих пользователей, состоящей в посылке на печать двоичных файлов (которые обычно имеют большую длину). Поскольку такие файлы могут содержать произвольные символы, в том числе символы, которые служат в качестве управляющих команд для принтера, печать двоичных файлов может приводить, например, к неоправданному расходованию бумаги и другим неприятным последствиям. На локальном принтере персонального компьютера этот параметр можно и не задавать. Я привел его для того, чтобы отметить, что для этого параметра, как и для всех других числовых параметров, значение должно отделяться от имени параметра знаком #, например, mx#0. Если написать mx=0, то такая запись не вызовет сообщений об ошибке, но она не изменяет значения переменной mx.
Еще один очень существенная группа параметров - это параметры of, if и nf. Но о них надо поговорить особо, что мы и сделаем чуть ниже в подразделе "Фильтры". Однако вначале рассмотрим программу, которая позволяет осуществить настройку принтера и создать файл /etc/printcap/.
9.6.3. Настройка lpd с помощью программы printconf-gui
Настройка системы LPD состоит в том, что обеспечивается возможность создавать очереди файлов и отправлять задания из этих очередей на принтер. Такую настройку можно произвести вручную, и я надеюсь, что приведенное выше описание позволяет это сделать. Однако в большинстве дистрибутивов имеются специальные утилиты, облегчающие конфигурацию подсистемы печати. В дистрибутиве Red Hat версии 6 такая утилита называлась printtoool, а в версии 7.1 вместо printtool включена утилита printconf-gui, которую можно вызвать из меню оболочки KDE. Эта утилита поддерживает ведение конфигурационного файла /etc/printcap, создание областей спулинга и выбор фильтров. Если в файле /etc/printcap не имеется ни одной записи о принтерах, то главное окно программы printconf-gui выглядит так, как показано на рис. 9.2.
Рис. 9.2. Основное окно printconf-gui
Как видите, в меню программы имеется команда Новая, после выбора которой мы видим следующее окно (рис. 9.3), в котором можно ввести имя очереди (которое будет и именем принтера, а поэтому должно быть уникальным), а также его синонимы (aliases).
Рис. 9.3. Задание имени очереди
Рис. 9.4. Выбор типа принтера и задание устройства
Щелкнув по команде меню Тип очереди в левом поле окна, вы получите возможность выбрать тип принтера и задать имя специального файла устройства. Тип очереди выбирается из выпадающего списка. Можно выбрать один из следующих типов:
• Локальный принтер - принтер, непосредственно присоединенный к вашему компьютеру через параллельный или USB-порт;
• Unix Printer (lpd Spool) - принтер, присоединенный к другому UNIX-компьютеру, доступ к которому осуществляется по сети TCP/IP (например, принтер, присоединенный к другому Linux-компьютеру);
• Windows Printer (SMB Share) - принтер, присоединенный к другой системе, работающей под ОС Windows или имеющей установленный сервер Samba (SMB);
• Novell Printer (NCP Queue) - принтер, присоединенный к другой системе, использующей технологию Novell's NetWare и протокол NCP;
• JetDirect Printer - принтер, непосредственно подключенный к сети, а не к какому-то компьютеру.
Мы рассмотрим только случай подключения локального принтера, а остальные варианты вы можете изучить с помощью имеющейся в программе подсказки (экранная кнопка Справка).
После выбора типа принтера и указания имени устройства щелкните по строке Printer Driver в левой колонке, и вы увидите список известных программе драйверов, упорядоченный по фирмам-производителям (рис. 9.5):
Рис. 9.5. Выбор драйвера
Если щелкнуть по треугольному значку слева от имени фирмы, раскроется список драйверов для принтеров данного производителя. На рис. 9.6 видна часть списка принтеров, производимых фирмой Hewlett Packard.
Рис. 9.6. Принтеры фирмы Hewlett Packard
Щелчок по кнопке с надписью Printer Notes… приводит к появлению окна с краткой информацией о выбранном принтере (рис. 9.7).
Рис. 9.7. Заметки о принтере
Ну, и последнее окно в этом ряду (рис. 9.8) позволяет задать некоторые параметры для выбранного принтера: режим печати (нормальный, экономичный, высокое качество), разрешение печати, размер бумаги, и т. п.
Завершив ввод, нажмите кнопку OK. После этого введенные вами данные будут сохранены в базе данных в файле /etc/printcap.
Команда Правка основного меню программы позволяет таким же способом отредактировать установки для принтера, который уже был описан ранее.
После того, как вы добавили в базу данных новый принтер или отредактировали установки ранее заведенного, обязательно необходимо перезапустить демон lpd. Для этого можно воспользоваться кнопкой Применить в основном окне программы.
Рис. 9.8. Задание параметров печати
Теперь можно попытаться распечатать пробную страничку, воспользовавшись командой Тест главного меню программы. Вам будет предложено 3 варианта тестовой страницы: Print PostScript Test Page, Print A4 PostScript Test Page, или Print ASCII Test Page. Скорее всего, тестовая страница у вас распечатается без проблем. Но если вы попробуете распечатать страницу текста из какого-либо приложения, тем более, если используются разные шрифты, да еще с кириллицей, то результат, к сожалению, может оказаться не таким радующим. Дело в том, что мы пока настроили только "нижний" слой подсистемы печати, обеспечивающий передачу потока байт от ядра ОС в параллельный порт или на сетевой принтер. Но проблема управления самим принтером (а не параллельным портом) пока не решена. В системе LPD эта проблема решается с помощью фильтров.
9.6.4. Фильтры
Когда задание на печать дождется своей очереди, lpd создает ряд программных каналов между буферным файлом и печатающим устройством для передачи данных, подлежащих печати. Посередине этой цепочки lpd устанавливает процесс-фильтр, в задачи которого входит просмотр и дополнительная обработка потока данных, направляемых на принтер. Процессы-фильтры могут выполнять над данными различные преобразования, в частности, форматирование и поддержку различных протоколов, которые могут понадобиться для работы с данным принтером.
- Серверные технологии хранения данных в среде Windows® 2000 Windows® Server 2003 - Наик Дайлип - Программное обеспечение
- Призрак в Сети. Мемуары величайшего хакера - Уильям Саймон - Программное обеспечение
- Photoshop CS2 и цифровая фотография (Самоучитель). Главы 10-14 - Солоницын Юрий - Программное обеспечение