- Печать из командной строки Linux
- Принтеры в Linux
- Настройка демонстрационного принтера
- 1. Установка КУПС
- 2. Создание фиктивного принтера
- Печать из командной строки
- 1. Основное использование
- 2. Печать нескольких копий
- 3. Очередь печати
- 4. Отмена задания на печать
- 5. Двусторонняя печать
- 6. Альбомная печать
- Другие варианты чашек
- 1. Список подключенных принтеров
- 2. Установка принтера по умолчанию
- создать принтер из командной строки
- 1 ответ 1
- примечание про фильтры
Печать из командной строки Linux
Для выполнения действий, описанных в этом руководстве, вам потребуются следующие компоненты:
- Правильно настроенная система Linux. Подробнее о настройке Убунту и Арх Линукс ВМ в VirtualBox.
- Базовое понимание интерфейса командной строки Linux.
Принтеры в Linux
Linux — универсальная операционная система. Он может выполнять простые повседневные задачи и работать даже с крупномасштабной инфраструктурой. Печать — это обычная задача, с которой могут справиться все системы Linux.
В этом руководстве мы настроим фиктивный принтер, который печатает вывод в /dev/null. Мы также покажем, как отправить документ на принтер и управлять очередью печати.
Настройка демонстрационного принтера
Для настройки фиктивного принтера мы будем использовать CUPS (Common UNIX Printing System). Это свободно доступный уровень печати, который большинство дистрибутивов Linux используют в качестве стандарта для управления принтерами. Узнайте, как установить и настроить сервер CUPS на Ubuntu .
1. Установка КУПС
Сначала установите CUPS с помощью APT:
$ судо подходящий установить чашки
Затем включите и запустите службу CUPS:
$ судо systemctl давать возможность —сейчас чашки
2. Создание фиктивного принтера
Теперь создайте фиктивный принтер, который печатает в /dev/null:
$ судо lpadmin -п демо-принтер -Е -v файл: /// разработчик / нулевой
Если действие выполнено успешно, оно появится в списке принтеров:
При желании мы можем пометить наш новый принтер как принтер по умолчанию:
$ судо lpoptions -д демо-принтер
Печать из командной строки
Теперь, когда у нас есть готовый принтер, пришло время начать печать.
1. Основное использование
Чтобы распечатать документ, используйте команду «lp»:
Поскольку принтер не указан, lp отправляет документ для печати на принтер по умолчанию. Если вы настроили демонстрационный принтер, который печатает в /dev/null, на самом деле он ничего не выводит.
2. Печать нескольких копий
Чтобы распечатать несколько копий документа, используйте следующую команду:
3. Очередь печати
При работе с реальными принтерами обычно требуется некоторое время для завершения печати копии. Однако у вас может быть несколько документов, которые вы хотите напечатать. Что делать в такой ситуации?
Благодаря функции очереди печати вы можете отправить все документы на печать сразу. Сервер CUPS сохраняет дополнительные документы в буфере. После завершения текущей задачи печати новый документ автоматически отправляется на принтер.
Чтобы просмотреть список отпечатков, которые в данный момент находятся в очереди, используйте следующую команду:
4. Отмена задания на печать
Что делать, если вы случайно отправили на печать не тот документ? Пока документ еще не отправлен на принтер, мы можем удалить его из очереди печати:
Тем не менее, вы должны быть быстры об этом. В противном случае документ будет уже напечатан. В этом случае он показывает следующую ошибку:
5. Двусторонняя печать
По умолчанию большинство принтеров настроены на печать на одной стороне. Однако мы можем указать CUPS выполнить двустороннюю печать:
$ лп -о стороны = двусторонняя длинная кромка
Если вы хотите сделать двустороннюю печать конфигурацией по умолчанию, используйте следующую команду:
$ lpoptions -о стороны = двухсторонний короткий край
Если вы хотите вернуться к односторонней печати, используйте следующую команду:
$ lpoptions -о стороны = односторонний
6. Альбомная печать
Мы также можем указать для печати в ландшафтном режиме. Для этого используйте следующую команду:
Другие варианты чашек
До сих пор мы изучали различные способы печати документа. В этом разделе мы будем работать с самой конфигурацией CUPS.
1. Список подключенных принтеров
Чтобы получить список всех принтеров, которые в данный момент подключены к системе, выполните следующую команду:
2. Установка принтера по умолчанию
При печати из командной строки без указания принтера команда «lp» отправляет документ на принтер по умолчанию.
Есть несколько способов указать принтер по умолчанию. Как показано в начале этого руководства, мы можем использовать команду «lpoptions», чтобы установить принтер по умолчанию:
Кроме того, мы можем использовать переменную среды PRINTER, чтобы указать принтер по умолчанию:
Если вы хотите сделать это изменение постоянным, добавьте строку в файл «bashrc»:
создать принтер из командной строки
создать принтер (точнее, очередь печати) можно, например, с помощью встроенного в cups веб-интерфейса — http://localhost:631 (или каким-нибудь gui-конфигуратором). а как это сделать из командной строки? для автоматизации этого процесса, например.
1 ответ 1
«штатное» средство, идущее в комплекте с набором программ, именуемым для краткости cups, называется lpadmin (в debian-основных дистрибутивах входит в пакет cups-client).
для создания/модификации очереди печати служит такая форма запуска этой программы:
$ lpadmin -p имя_очереди [разные опции]
(есть ещё две формы: удаления очереди — lpadmin -x имя_очереди , и назначение очереди по умолчанию — lpadmin -d имя_очереди ).
если указанной очереди ещё не было — она создаётся. если уже была, то этой командой можно изменить опции существующей очереди.
запускаться программа должна либо от имени пользователя, входящего в группу, которой разрешено администрирование cups-а (обычно — lpadmin ), тогда, вероятно, надо будет указать полный путь к ней — /usr/sbin/lpadmin , либо от имени пользователя root (т.е., например, с использованием sudo : sudo lpadmin . ).
«минимальный джентльменский набор» разных опций , пожалуй, можно свести к такому списку:
- -E — сразу сделать очередь доступной (эта опция, если её употребить до опций -p / -d / -x означает совсем другое — «использовать шифрование при подлючении к cups-серверу». ну, такие вот выдумщики эти разработчики)
- -v uri-принтера — uri, по которому доступен принтер. для «сетевых», поддерживающих спецификацию «hp jetdirect», это что-нибудь вроде socket://сетевое.имя:9100 (подробнее про «сетевые» uri)
- -o media=A4 — iso-формат бумаги («европейский»). лучше указать явно, чтобы не нарваться на «североамериканский» (см. про letter и a4)
- -m uri-фильтра или -P /путь/к/файлу/с/фильтром — см. примечание
$ lpadmin -p имя_очереди -E -v uri-принтера -o media=A4 -m uri-фильтра
$ lpadmin -p имя_очереди -E -v uri-принтера -o media=A4 -P /путь/к/файлу/с/фильтром
примечание про фильтры
cups позволяет, для адаптации задания печати под конкретную модель принтера, пропустить задание через фильтр — так называемый postscript printer description, сокращённо ppd (отсюда и знакомые многим суффиксы .ppd у файлов с такими фильтрами).
теоретически, если принтер достаточно «интеллектуален», в качестве uri-фильтра можно указать raw : -m raw . в документации по этому поводу написано так:
The model «raw» clears any existing PPD file and the model «everywhere» queries the printer referred to by the specified IPP device-uri.
но обычно фильтр (ppd) указывают явно, выбирая производителя, а затем модель принтера. это если очередь создаётся из веб-интерфейса или с помощью gui-конфигуратора. а в случае командной строки всё это разнообразие можно посмотреть командой:
программа lpinfo тоже может располагаться в /usr/sbin , тогда придётся указать к ней полный путь.
пример вывода для псевдо-модели HP LaserJet 6P :
$ lpinfo --make-and-model 'HP LaserJet 6P' -m gutenprint.5.2://hp-lj_6p/expert HP LaserJet 6P - CUPS+Gutenprint v5.2.9 foomatic:HP-LaserJet_6P-lj4dith.ppd HP LaserJet 6P Foomatic/lj4dith foomatic:HP-LaserJet_6P-ljet4.ppd HP LaserJet 6P Foomatic/ljet4 drv:///hpijs.drv/hp-laserjet_6p-hpijs.ppd HP LaserJet 6p hpijs, 3.12.6 drv:///hpcups.drv/hp-laserjet_6p.ppd HP LaserJet 6p, hpcups 3.12.6 postscript-hp:0/ppd/hplip/HP/hp-laserjet_6mp-ps.ppd HP LaserJet 6P/6MP - PostScript postscript-hp:1/ppd/hplip/HP/hp-laserjet_6mp-ps.ppd HP LaserJet 6P/6MP - PostScript
из него можно взять, например, пятую строку и использовать в качестве uri-фильтра при вызове lpadmin: -m drv:///hpcups.drv/hp-laserjet_6p.ppd
также нередко случается, что нужно использовать уже «готовый» фильтр, хранящийся в файле с суффиксом .ppd . тогда и надо применять опцию -P /путь/к/файлу.ppd (вместо -m uri-фильтра ).
вышеописанное, в принципе, должно подойти не только к операционной системе gnu/linux, но и, например, к apple/macosx.
вероятно, стоит ещё упомянуть про то, как посмотреть список доступных очередей печати: