Сетевые средства Linux
Шрифт:
Организация сервера печати с помощью Samba
Разделяемые объекты, представляющие принтеры, используются по такому же принципу, как и объекты, предназначенные для организации совместного доступа к файлам. Для того чтобы вывести данные на печать, клиент передает файл разделяемому объекту принтера. Сервер обрабатывает этот файл и выводит его содержимое на устройство печати. Многие из параметров, которые используются при описании разделяемых объектов файлов, применимы и для объектов принтеров. Так, например, в описания разделяемых объектов принтеров можно включать параметры, управляющие доступом пользователей. С другой стороны, в определении таких объектов неуместны параметры, которые управляют использованием в именах файлов символов верхнего и нижнего регистра.
Трудности, возникающие при поддержке разделяемых принтеров, в основном связаны с обработкой заданий на печать, передаваемых Windows-клиентами. В зависимости от типа очереди Linux,
При рассмотрении вопросов взаимодействия с устройством печати предполагается, что принтер уже подключен к компьютеру и может выводить данные, которые передаются ему в системе Linux. (Для некоторых принтеров отсутствуют драйверы Ghostscript, но эти принтеры могут успешно использоваться посредством Samba.)
Создание разделяемого объекта принтера
Основное различие между разделяемыми объектами файлов и принтеров состоит в том, что в описании последнего присутствует параметр
Параметр comment задает комментарии для разделяемого объекта
В различных дистрибутивных пакетах Linux используются разные системы печати. В настоящее время чаще всего применяется система BSD, но системы LPRng и CUPS (Common Unix Printing System — общая система печати UNIX) также приобретают популярность. Разные системы печати отличаются друг от друга синтаксическими правилами, что необходимо учитывать при настройке Samba. Для этой цели предусмотрен параметр
Выше в этой главе рассматривался вопрос создания разделяемого объекта файлов, обеспечивающего доступ всех пользователей к своим рабочим каталогам. Точно так же при работе с разделяемыми объектами принтеров вы можете создать один объект, обеспечивающий доступ ко всем принтерам, присутствующим в системе. Этот объект имеет имя
Совместное использование PostScript-принтеров
В ходе предыдущего обсуждения не затрагивался вопрос об использовании драйверов. Этот вопрос чрезвычайно важен для разделения принтеров в системе Samba; драйверы принтеров часто становятся источником проблем. В системе Windows драйверы принтеров взаимодействуют с прикладными программами и генерируют данные, совместимые с конкретной моделью принтера. Таким образом, формат файла, который приходит разделяемому объекту печати, расположенному на сервере Samba, зависит от того, какой драйвер принтера был установлен на клиентской машине. В отличие от Windows, в системе Linux обычно используются очереди печати, которые настраиваются для приема данных в формате PostScript. В зависимости от типа принтера, подключенного к компьютеру, данные могут передаваться ему в неизменном виде либо обрабатываться фильтром печати. Фильтр печати преобразует PostScript-код в формат, подходящий для данного принтера. Различия в моделях печати иногда приводят к возникновению конфликтов. Если клиент Windows предоставляет серверу Samba файл в формате, отличном от PostScript, информация, предназначенная для вывода на печать, может быть искажена. Возможна также ситуация, когда данные, сгенерированные PostScript-драйвером Windows, воспринимаются на сервере Samba как информация, представленная в другом формате. В этом случае при выводе на печать также будут получены некорректные результаты. Существует ряд правил и параметров Samba, которые позволяют разрешить данную проблему, но необходимо испробовать различные средства, чтобы найти наиболее подходящие из них.
Наиболее просто конфигурация Samba устанавливается в том случае, если разделяемый принтер поддерживает язык PostScript. В этом случае PostScript-код может быть непосредственно передан на устройство печати. Однако поддержка PostScript обычно реализуется в высокоуровневых лазерных принтерах и некоторых устройствах печати среднего уровня. Низкоуровневые лазерные принтеры и струйные принтеры, поддерживающие PostScript, встречаются крайне редко. Для того чтобы выяснить, может ли ваш принтер обрабатывать PostScript-код, необходимо ознакомиться с документацией на это устройство.
Некоторые принтеры объявляются в системе как устройства, поддерживающие PostScript, однако данное свойство принтера эмулируется с помощью интерпретатора, выполняющегося в системе Windows. При организации совместного доступа к подобным принтерам они должны рассматриваться как устройства печати, не поддерживающие PostScript. Это могут быть высококачественные принтеры, но без эмулятора они не способны обрабатывать PostScript-код.
Язык PostScript и соответствующий интерпретатор были первоначально разработаны компанией Adobe (
Если ваш принтер непосредственно поддерживает PostScript, вы можете установить PostScript-драйвер в системе Windows. Такие драйверы входят в поставку операционной системы, а также распространяются производителями принтеров. (Компания Adobe также предоставляет драйверы PostScript, но они предназначены для принтеров, в которых используется PostScript-интерпретатор, разработанный Adobe.) Этот драйвер генерирует данные в формате PostScript, которые Samba передает в очередь на устройство печати; затем данные приходят на конкретный принтер. В большинстве случаев информация корректно выводится на печать.
Иногда при использовании описанной конфигурации возникают проблемы, которые чаще всего связаны с тем, что PostScript-драйвер, установленный в системе Windows, предваряет вывод данных символом <Ctrl+D>. Большинство PostScript-принтеров игнорирует этот символ, но он может влиять на поведение очереди в системе Linux. Фильтр печати ожидает встретить в начале файла, содержащего задание на печать, идентификатор формата PostScript. Обнаружив символ <Ctrl+D>, фильтр печати интерпретирует его как признак того, что в файле содержится ASCII-текст. Поскольку ASCII-текст не может быть непосредственно передан на PostScript-принтер, этот файл повторно преобразуется в PostScript-формат. В результате вместо текста документа на принтер выводится его PostScript-код. Разрешить эту проблему можно двумя способами.