Как печатать на линуксе

Обновлено: 07.07.2024

Некоторые функции могут различаться в зависимости от модели и опций. Это означает, что функция не поддерживается.

Печать из приложений

Существует множество приложений Linux, из которых можно печатать с помощью системы печати CUPS (Common Unix Printing System — общая система печати Unix). Устройство поддерживает печать из любых приложений такого рода.

Откройте приложение и выберите пункт Print в меню File .

Выберите команду Print напрямую с помощью lpr.

В окне LPR GUI выберите из списка устройств название модели используемого устройства и нажмите кнопку Properties .

Измените свойства задания печати в следующих четырех вкладках в верхней части окна.

General : Измените размер бумаги, е тип и ориентацию документа. Там же можно включить функцию двусторонней печати, нумерацию страниц, добавить верхнюю и нижнюю шапки.

Функция автоматической/ручной двусторонней печати может быть недоступна в некоторых моделях. Вы можете воспользоваться системой печати lpr или другим приложением для печати четных/нечетных страниц.

Text : выбор полей страницы и настроек элементов текста, например интервалов или колонок.

Graphics : выбор настроек, используемых при печати файлов изображений, например, настроек передачи цвета, размера изображения и его расположения.

Advanced : выбор разрешения печати, источника бумаги и выходного лотка.

Чтобы начать печать, нажмите кнопку OK в окне LPR GUI .

Появится окно печати, позволяющее контролировать задания печати.

Чтобы отказаться от текущего задания, нажмите кнопку Cancel .

Печать файлов

Устройство позволяет печатать файлы различных типов стандартным для системы CUPS способом — непосредственно из командной строки. Вы можете это делать с помощью стандартной служебной программы CUPS lpr, однако пакет драйверов заменяет стандартное средство LPR значительно более удобной программой LPR GUI.

Для печати документа выполните указанные ниже действия.

В командной строке Linux наберите команду lpr <имя_файла> и нажмите клавишу Enter. Откроется диалоговое окно LPR GUI .

Если ввести только lpr и нажать Enter , сначала будет открыто окно Select file(s) to print . Просто выберите файлы, которые требуется напечатать, и нажмите кнопку Open .

В окне LPR GUI выберите свое устройство из списка и измените свойства задания печати.

Чтобы начать печать, нажмите кнопку OK .

Настройка свойств принтера

В окне Printer Properties , доступном из окна Printers configuration , можно изменять различные параметры устройства, используемого в качестве принтера.

Откройте окно Unified Driver Configurator .

При необходимости перейдите к Printers configuration .

Выберите нужное устройство в списке и нажмите кнопку Properties .

Откроется окно Printer Properties .

Окно содержит пять вкладок.

General : выбор имени и расположения принтера. Имя, заданное на этой вкладке, отображается в списке принтеров в окне Printers configuration .

Connection : просмотр или выбор другого порта. При переключении с порта USB на параллельный порт и наоборот необходимо изменить порт устройства на этой вкладке.

Driver : просмотр или выбор другого драйвера принтера. Кнопка Options служит для задания параметров устройства по умолчанию.

Jobs : вывод списка заданий печати. Для отмены выбранного задания нажмите кнопку Cancel job . Для просмотра предыдущих заданий из списка нажмите кнопку Show completed jobs .

Classes : отображение класса, к которому относится данное устройство. Кнопка Add to Class позволяет добавить устройство к тому или иному классу, кнопка Remove from Class — удалить устройство из выбранного класса.

Одним из свойств pdq и lpd является то что они поддерживают печать по сети на принтер, физически подключенный к другой машине. С помощью правильной комбинации фильтров и разнообразных утилит, вы можете печатать используя lpr на принтера во всех видах сетей.

Для того чтобы разрешить удаленным машинам печатать на ваш принтер используя протокол LPD, вы должны перечислить эти машины в файле /etc/hosts.equiv или /etc/hosts.lpd . (Заметим, что hosts.equiv имеет список машин несколько с другим эффектом; будьте уверены что вы знаете что вы делаете если перечисляете машины в этом файле). Вы можете разрешить только определенным пользователям на других машинах печатать на ваш принтер используя атрибут rs ; читайте справочную страницу lpd для более детальной информации об этом.

Используя pdq

Используя PDQ, вы определяете принтер с типом интерфейса "bsd-lpd". Этот интерфейс берет в качестве аргумента имя удаленного сервера и имя очереди печати; помощник определения принтера запросит у вас эти параметры.

С помощью lpd

Для того чтобы печатать на другую машину вы должны сделать примерно такую запись в /etc/printcap :

Заметим что все равно есть директория очереди на локальной машине обслуживаемая lpd . Если удаленная машина занята или отключена, то задание с локальной машины будет находиться в очереди до тех пор пока оно не сможет быть послано.

С помощью rlpr

Вы также можете использовать rlpr для послания задания печати прямо в очередь удаленной машины без мороки с настройкой lpd для выполнения этой задачи. Это в большинстве случаев полезно в ситуациях когда вы печатаете на множество принтеров только время от времени. Из анонса rlpr :

Rlpr использует TCP/IP для посылки заданий печати на сервера с lpd, находящиеся где угодно в сети.

В отличии от lpr, он не требует чтобы удаленный принтер был явно известен машине с которой вы хотите печатать, (например в /etc/printcap ) и таким образом является значительно белее гибким и требующим меньше администрирования.

rlpr может использоваться везде где мог бы использоваться традиционный lpr, и он является совместимым с традиционным BSD lpr.

Основная мощь rlpr заключается в удаленной печати откуда угодно куда угодно без учета как система на которую вы хотите печатать была настроена. Rlpr может работать как фильтр, как и традиционный lpr, так что клиенты выполняемые на удаленной машине такие как netscape, xemacs, и т.п., могут печатать на вашу локальную машину с небольшими усилиями.

Rlpr доступен с Metalab .

Существует "Printing to Windows mini-HOWTO" в котором находится больше информации чем в данном документе.

Используя PDQ

Нет предопределенного интерфейса smb, что я сознаю, но он может достаточно легко создан используя модель, заданную интерфейсом appletalk на базе пакета Netatalk. Некоторые люди создали его и выслали его для включения в дистрибутив!

Прочитайте раздел о Windows/LPD в следующих разделах данного документа для дополнительных советов как сделать данный драйвер.

From LPD

Запись в /etc/printcap выглядит примерно так:

Вы должны прочитать документацию внутри скрипта smbprint для более детальной информации о настройке

Вы также можете использовать программу smbclient для посылки файла прямо на сервис печати SMB без вовлечения в этот процесс lpd . Смотрите справочные страницы.

Набор программ ncpfs включает утилиту названную nprint , которая обеспечивает те же самые возможности как и smbprint , но для NetWare. Вы можете получить ncpfs с Metalab. Информация из записи в LSM для пакета версии 0.16:

С помощью ncpfs вы можете монтировать тома вашего сервера netware под Linux. Вы также можете печатать в очереди печати netware и перенаправлять очереди печати netware на систему печати Linux. Вам необходимо ядро версии 1.2.x или 1.3.54 и выше. ncpfs НЕ работает с любыми ядрами 1.3.x ниже 1.3.54.

From LPD

Для того чтобы заставить nprint работать через lpd, вам нужно написать маленький скрипт для печати потока стандартного ввода на принтер NetWare, и установить его как if -фильтр для очереди печати lpd. Вы получите что-то подобное этому:

nprint-script может выглядеть примерно так:

Пакет netatalk включает что-то подобное nprint и smbclient . Другие имеют документированные процедуры для печати на и с сетей Apple много лучше чем я представлял; Смотрите Linux Netatalk-HOWTO.

Используя PDQ

PDQ включает в поставку объявление интерфейса, который называется "appletalk". Он использует пакет Netatalk для печати на подключенный к сети принтер Apple. Просто выберите этот интерфейс при использовании помощника добавления принтера в xpdq.

Принтеры HP и некоторые другие принтера идут с интерфейсом на который вы можете печатать прямо, используя протокол lpd. Вы должны следовать инструкциям, которые идут с вашим принтером или его сетевым адаптером, но в главном такие принтера являются "работающим" lpd., и обеспечивают одну или более очередь на которые вы можете печатать. Например HP может работать с printcap подобным:

Принтера HP Laserjet с интерфейсами Jet Direct iв общем поддерживают две встроенных очереди lpd -- "raw", которая принимает PCL (и возможно Postscript) и "text", которая принимает чистый ascii (и автоматически справляется с лестничным эффектом). Если у вас JetDirect Plus3 трех-портовый принтер, то очереди называются "raw1", "text2", и так далее.

Заметим, что компания ISS обнаружила набор атак denial of service (DoS), которые могут завесить интерфейсы HP Jetdirect. Большинство из них датируется началом осени 98.

В средах большого масштаба, особенно в больших средах где некоторые принтера не поддерживают PostScript, может быть полезно создать выделенный сервер печати на который все машины будут печатать и на котором все задания ghostscript будут запущены. Это позволит вам приостанавливать очереди печати или переорганизовывать их используя команды topq и lprm.

Чтобы сделать это, установить очередь на вашей машине, которая указывает на оборудованный ethernet принтер HP LJ (как показано выше). Затем укажите для всех клиентов вашей LAN, чтобы они печатали на очередь печати Linux (например lj-5 как в вышеприведенном примере).

Некоторые сетевые принтера HP по всей видимости не нуждаются в установке страницы заголовка (banner page) посылаемой клиентом; вы можете отключить внутренне генерируемую страницу заголовка зайдя на принтер с помощью telnet, нажав два раза return, набрав "banner: 0" и затем "quit". Существуют другие настройки, которые вы можете изменить тем же способом; наберите "?" для просмотра списка установок.

На старые принтера HP

Некоторые принтера (и печатающие сетевые "черные ящики") поддерживают только никуда не годные маленькие непротокольные соединения включая чистые TCP соединения. Примечательными в этой категории являются ранние модели карт JetDirect (включая некоторые карты JetDirectEx). В основном для печати на принтер вы должны открыть соединение TCP на принтер на указанный порт (обычно 9100 или 9100, 9101 и 9102 для трех-портовых принтеров) и запихнуть свое задание печати в принтер. LPRng имеет встроенную поддержку для выдачи заданий печати на произвольные порты TCP, но при использовании BSD lpd это не так легко. Это может быть выполнено на Perl:

Интерфейс PDQ использующий netcat должен выглядеть примерно так:

В случае отсутствия этой программы, она может быть реализована другими способами, например на языке Perl, используя нижеприведенную программу. Или для большей производительности используйте программу netcat ("nc"), которая выполняет то же самое. Большинство дистрибутивов должны иметь эту программу в своем составе.

Одна странность старых версий lpd в том что if не запускается для удаленных принтеров. (Версии после 0.43 или примерно такой имеют изменения внесенные на FreeBSD, так что они всегда работают). Если вам нужно выполнить if , вы можете сделать это установив двойную очередь и перенаправляя задание. Как пример рассмотри такой printcap :

в свете этого скрипт filter-lj-5 будет выглядеть так:

Опция -U lpr работает только если lpr запущен как демон, и она правильно устанавливает имя имя автора задания при его перенаправлении. Вы должны вероятно использовать более надежный метод получения имени пользователя, так как в некоторых случаях оно не является пятым аргументом. Смотрите справочную станицу printcap .

Печать из под клиента Windows (или OS/2) на сервер Linux прямо поддерживается через SMB используя пакет SAMBA, который также поддерживает разделение вашей файловой системы Linux с клиентами Windows.

Samba включает в себя довольно полную документацию. Вы можете либо настроить magic-фильтр на машине с Linux и печатать на нее в формате PostScript или установить специфичные для принтера драйвера на всех машинах с Windows и обрабатывать очередь без фильтрации. Полагаясь на драйвера Windows вы можете в некоторых случаях получить более качественный вывод, но это дает больше административной нервотрепки если у вас много машин с Windows. Так что сначала попробуйте PostScript.

Используя PDQ, вы должны настроить Samba для запуска команды pdq с соответствующими аргументами вместо команды lpr, которая выполняется по умолчанию. Я верю, что Samba будет запускать pdq с правами соответствующего пользователя, так что он должен работать нормально. Существует несколько настроек Samba, которые вы должны выставить для правильной работы:

этот параметр должен указывать на "фальшивый" файл, в котором вы должны перечислить доступные принтера. Все что нужно указать, это короткие и длинные сервера для каждого из принтера, один на каждую строку:

Короткое имя будет использоваться как имя принтера в команде печати:

Этот параметр должен быть установлен во что-нибудь подобное следующему pdq -P %p %s ; rm %s .

Для этого параметра пока нет хорошего значения. Буферизованные задания PDQ будут сниматься после истечения времени, так что если принтер не работает, то все нормально. Но если вы просто решили отменить свое намерение, то вы можете использовать программу xpdq для отмены заданий, но это неприменимо для Windows. Просто вствьте сюда ничего не делающую команду, такую как true. Если вы используете lpd или lprng в качестве основы, то соответствующая команда lprm должна нормально работать. Я не уверен, что Samba может идентифицировать номер задания в очереди lpr для запущенных pdq заданий.

Также PDQ не предоставаляет хорошего значения, которое можно поместить здесь. Распределенные системы не предлагают нормального решения для того, чтобы видеть очередь печати, но основанные на samba сервера должны иметь достойную схему. если вы используете lpd или lprng как основу, то соответствующая команда lpq c должна работать; вы просто не сможете увидеть задания, до того, как они будут отфильтрованы PDQ.

Пакет ncpfs включает демона называемого pserver, который может быть использован для обеспечения сервиса очередей печати NetWare. Как я понял эта система требует основанную на Bindery систему NetWare, т.е. 2.x, 3.x, или 4.x с разрешенным доступом к bindery.

Для более детальной информации о ncpfs и ее программе pserver смотрите FTP сервер ncpfs FTP.

Настроить печать в Linux довольно легко! В Linux аппаратные средства определяются и настраиваются автоматически. Тем не менее, есть периферийные устройства, которые нужно поднастроить, принтеры не являются исключением.

Как настроить печать в Linux

Почти все настольные Linux имеют удобный инструмент для настройки и управления принтером. В каждом дистрибутиве могут быть незначительные различия в GUI (для настройки печати Linux), но использовать этот инструмент очень легко. За этим инструментом GUI, находится веб-интерфейс под названием Common Unix Printing System (CUPS). CUPS собственно настраивает и осуществляет работу по печати в Linux, а GUI это лишь графическая оболочка.

Установка драйвера для печати в Linux

Почти каждый дистрибутив включает в себя инструменты для управления принтерами, так что шансы установить драйвер для принтера в Linux очень велики. Найдите этот самый инструмент для принтеров на вашем рабочем столе. Например, в Ubuntu его можно найти в «Параметры системы» под названием «Принтеры».

Добавить печать в Linux

Из окна системы конфигурации принтера, щелкните на кнопке «Добавить». В появившемся окне, вы должны увидеть свой принтер.

Определение принтера печать в Linux

Если ваш принтер в списке, то вы находитесь всего в нескольких кликах от печати в Linux.

После инсталляции драйвера принтера мастер предложить произвести печать пробной страницы в Linux.

Печать пробной страницы в Linux

Свойства принтера — описание для отправки на печать в Linux.

Вся информация в окне описания принтера должны быть читабельна и понятна для человека, другими словами дайте такое название принтеру, чтобы вы понимали, куда отправляете материал на печать в Linux. Например, лазерный принтер или просто оставьте все по умолчанию, имя по номеру модели.

После завершения описания для печати в Linux, нажмите кнопку применить.

Теперь принтер добавлен систему, и вы можете поделиться им в локальной сети с другими компьютерами. Чтобы сделать это, щелкните правой кнопкой мыши по принтеру и убедитесь, что активирована функция «Общий доступ».

Добавление сетевых принтеров для печати в Linux

Верите или нет, но добавить сетевой принтер почти так же просто, как настроить локальный принтер. Я буду считать, что принтер уже настроен в другой системе Linux или он подключен к маршрутизатору, который организует локальную сеть.

Первым шагом нужно открыть инструмент настройки принтера. Нажать кнопку добавить, и в появившемся окне выберете «Сетевой принтер → Найти сетевой принтер». В строке сервер Вы должны ввести адрес, по которому расположен сетевой принтер, в моём случае он таков: 192.168.1.1

Печать через сетевой принтер в Linux

От первых дней, печать в Linux прошла долгий путь. И теперь это не просто инструмент, это уже довольно зрелый и удобный способ настройки аппаратных средств в Linux. Если у Вас возникли проблемы при добавлении принтера для печати в Linux то, скорее всего Вы выбрали не тот драйвер. Обычно настройка печати в Linux проходит гладко и просто.

Если вы не нашли именно вашей модели принтера в списке драйверов? То выберете ближайший номер модели и попробуйте его.

В данной статье будет выполнена настройка CUPS из командной строки операционной системы CentOS/RedHat. Однако, аналогичным способом, подсистема печати может быть настроена практически на любой Unix-подобной системе.

Установка CUPS

CUPS может быть установлен из репозитария операционной системы CentOS/RedHat стандартными средствами:

После завершения установки запустим сервер CUPS и добавим его в автозагрузку:

Сразу же после установки сервер CUPS готов к работе, однако для печати необходимо подключить принтер, на который будет осуществляться вывод, и выполнить его настройку.

Подключение принтера в CUPS

Для подключения и настройки принтера в CUPS проще всего воспользоваться WEB-интерфейсом, который доступен после установки.

Home page of CUPS

Для доступа к настройкам необходимо указать учетные данные локального пользователя, входящего в группу root или sys (настройки по умолчанию). Список групп, для которых разрешен доступ к настройкам, описан в конфигурационном файле: /etc/cups/cups-files.conf.

Чтобы добавить новый принтер в CUPS, необходимо зайти на WEB-интерфейс и перейти по пути: Administration -> Add Printer и далее следовать инструкциям мастера установки принтера:

Add a new printer in CUPS

Удаленный доступ к WEB-интерфейсу CUPS

Настройка доступа к интерфейсу CUPS осуществляется в конфигурационном файле: /etc/cups/cupsd.conf.

Но проще всего выполнить настройку параметров удаленного доступа к WEB-интерфейсу CUPS с помощью следующей команды:

Эта команда автоматически обновит конфигурационный файл /etc/cups/cupsd.conf, а оригинальный файл будет переименован в cupsd.conf.O.

Access to the remote WEB-interface of CUPS

Проверка печати в Linux

Выполнить проверку печати можно, как минимум, двумя способами:

через WEB интерфейс:

из командной строки:

Печать PDF файла из командной строки в Linux

Для печати PDF файла из командной строки можно воспользоваться стандартной командой печати, приведенной выше:

Читайте также: