Печать из командной строки

Как распечатать вывод командной строки непосредственно на принтер.

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

Любая помощь приветствуется

1
задан 12 March 2014 в 05:54

6 ответов

Вы можете использовать lp

Например:

man firefox | lp -d printername

Это напечатает справочную страницу с firefox на указанный принтер

12
ответ дан 24 May 2018 в 10:54
  • 1
    Спасибо, мне также нужно было использовать o fit-to-page, чтобы текст был немного лучше. man bash | lp -o media=letter -o portrait -o fit-to-page -, - в конце обеспечивает чтение стандартного ввода. – Elijah Lynn 11 July 2017 в 06:52

Если вы их установили, другая пара опций, о которых стоит знать, это

enscript

и

enscript 5]

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

Я использую их с принтерами, поддерживающими Postscript, но я считаю, что система печати Ubuntu может растрировать PS для любого поддерживаемого принтера.

2
ответ дан 24 May 2018 в 10:54

Чтобы напечатать файл .txt при использовании:

command | lpr -P printername -p ( periority from 1 to 100 )

Пример:

ls -l | lpr -P printername -p 1 
1
ответ дан 24 May 2018 в 10:54

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

Убедитесь, что система CUPS установлена ​​и запущена. Он предоставляет демонов, которые будут обрабатывать ваши задания печати. После этого вам нужно настроить один или несколько сетевых принтеров для печати. Обычным способом установки принтеров является утилита Printer Admin, но вы, очевидно, не настроены на запуск каких-либо графических программ с вашего сервера - просто доступ к командной строке через ssh. Поскольку у вас уже есть настольная система Ubuntu в той же сети, я бы попытался скопировать содержимое каталога /etc/cups из окна рабочего стола на сервер. Он должен содержать все определения и драйверы принтера, которые вам нужны. Проверьте файлы на наличие необходимых настроек (в случае, если в настройках указаны идентификаторы пользователей или пароли, которые отличаются между двумя системами), перезапустите cupsd, и если вам повезет, вы сможете использовать lpr для печати из командной строки.

PS. В крайнем случае вы можете установить достаточное количество утилит X для запуска утилиты GUI Print Admin с помощью удаленного X-соединения на ваш рабочий стол Ubuntu (войдите с ssh -X) и определите нужные вам принтеры. Но, надеюсь, это не понадобится.

0
ответ дан 24 May 2018 в 10:54

Возможно, вам захочется узнать, как получить доступ к принтеру в первую очередь - lpstat предоставит вам эту информацию. Если вы сравните свой вывод в обеих системах, вы, вероятно, можете определить, был ли задан этот принтер на обоих из них. lpstat -p -d перечисляет все принтеры с их статусом и сообщает, какой из них был установлен как принтер по умолчанию.

Затем вы можете просто передать свой вывод команде lp или lpr. Возможно, вы захотите вставить фильтр для печати или разбивки на страницы. В руководстве по сборке debian «Highlighting and formatting plain text data» есть хорошее резюме инструментов, но обычно я использую sed, чтобы выделить подсказки и другие материалы, прежде чем отправлять все через a2ps

0
ответ дан 24 May 2018 в 10:54

Вы можете использовать команду lp.

Чтобы распечатать вывод команды на принтер по умолчанию (используйте lpstat -d, чтобы узнать, что такое принтер по умолчанию):

Для печати на конкретном принтере (используйте lpstat -p | awk '{print $2}' для отображения доступных имен принтеров):

echo "test" | lp -d printername

Чтобы напечатать файл, а не выход команды:

lp /path/to/file
0
ответ дан 24 May 2018 в 10:54

Другие вопросы по тегам:

Похожие вопросы: