[[email protected] ~]$ ls /usr/bin | pr -3 | lpr
В этом случае отчет будет выведен на принтер, используемый системой по умолчанию. Для вывода файла на другой принтер используйте параметр -P:
lpr -P имя_принтера
где аргумент имя_принтера — имя требуемого принтера. Получить список принтеров, известных системе, поможет команда:
[[email protected] ~]$ lpstat -a
ПРИМЕЧАНИЕ
Многие дистрибутивы Linux позволяют определять фиктивные «принтеры», которые выводят результат в файл в формате PDF, а не на физический принтер. Это очень удобно для экспериментов с командами печати. Запустите свою программу настройки принтеров и посмотрите, поддерживает ли она такую возможность. Чтобы включить ее, в некоторых дистрибутивах может понадобиться установить дополнительные пакеты (такие, как cups-pdf).
В табл. 22.2 перечислены некоторые часто используемые параметры команды lpr.
Таблица 22.2. Наиболее часто используемые параметры команды lpr
Параметр
Описание
-# число
Число копий
-p
Вывести на каждой странице заголовок с датой, временем, именем задания и номером страницы. Этот так называемый параметр структурной печати («pretty print») можно использовать для печати текстовых файлов
-P принтер
Имя принтера для вывода. Если принтер не указан, используется системный принтер по умолчанию
-r
Удалить файлы после печати. Может пригодиться при использовании программ, создающих временные файлы для печати
lp — печать файлов (в стиле System V)
Подобно lpr, программа lp принимает файлы или данные со стандартного ввода. Отличается от lpr поддержкой иного (немного более сложного) набора параметров. Наиболее часто используемые параметры перечислены в табл. 22.3.
Вернемся к нашему списку содержимого каталога, но на этот раз выведем его с плотностью печати 12 CPI и 8 LPI и с левым полем размером полдюйма. Обратите внимание, что нам пришлось откорректировать параметры pr, чтобы учесть новые размеры страницы:
[[email protected] ~]$ ls /usr/bin | pr -4 -w 90 -l 88 | lp -o page-left=36 -o cpi=12 -o lpi=8
Таблица 22.3. Наиболее часто используемые параметры команды lp
Параметр
Описание
-d принтер
Имя принтера для вывода. Если принтер не указан, используется системный принтер по умолчанию
-n число
Число копий
-o landscape
Вывести в альбомной ориентации
-o fitplot
Масштабировать файл, чтобы уместить на странице. Этот параметр может пригодиться при печати изображений, например файлов в формате JPEG
-o scaling=число
Масштабировать файл с указанным коэффициентом. Значение 100 соответствует полному заполнению страницы. Значения меньше 100 уменьшают размеры области печати, тогда как значения больше 100 — увеличивают, вследствие чего файл печатается на нескольких страницах
-o cpi=число
Установить плотность печати символов на дюйм (CPI) как указанное число символов на дюйм. По умолчанию это значение устанавливается равным 10
-o lpi=число
Установить плотность печати строк на дюйм (LPI) как указанное число строк на дюйм. По умолчанию это значение устанавливается равным 6
-o page-bottom=пунктов
-o page-left=пунктов
-o page-right=пунктов
-o page-top=пунктов
Размеры полей. Значения выражаются в пунктах – единице измерения, используемой в типографском деле. Один дюйм соответствует 72 пунктам
-P страницы
Список страниц для печати. Список может иметь вид перечисления номеров страниц через запятую и/или диапазонов, например: 1,3,5,7-10
Этот конвейер выводит список в четыре колонки с меньшим размером шрифта, чем принято по умолчанию. Увеличение плотности символов на дюйм позволило уместить больше колонок на странице.
Еще одна возможность: a2ps
Программа a2ps довольно интересна. Как можно догадаться по ее имени, это программа преобразования одного формата в другой, но не только. Первоначально ее имя означало ASCII to PostScript (из ASCII в PostScript) и она использовалась для подготовки текстовых файлов к печати на принтерах с поддержкой PostScript. С годами, однако, возможности программы росли, и теперь ее имя означает Anything to PostScript (все что угодно — в PostScript). Несмотря на то что имя программы говорит, что это — программа преобразования одного формата в другой, в действительности она является программой печати. Она выводит результаты своей работы в свой вывод по умолчанию — в системный принтер, а не в стандартный вывод. По умолчанию программа действует как программа «структурной печати», улучшая формат вывода. Мы можем с ее помощью создать PostScript-файл на своем рабочем столе:
[[email protected] ~]$ ls /usr/bin | pr -3 -t | a2ps -o ~/Desktop/ls.ps -L 66
[stdin (plain): 11 pages on 6 sheets]
[Total: 11 pages on 6 sheets] saved into the file `/home/me/Desktop/ls.ps'
Здесь мы обработали поток с помощью программы pr, передав ей параметр -t (чтобы опустить верхние и нижние колонтитулы), и передали результат программе a2ps, указав ей файл для вывода (параметр -o) и плотность печати 66 строк на странице (параметр -L), чтобы разбить вывод pr на страницы. Если открыть получившийся файл с помощью соответствующего средства просмотра, можно увидеть, что он выглядит, как показано на рис. 22.1.
Рис. 22.1. Результат работы a2ps
Как видите, по умолчанию используется формат вывода «две страницы рядом». В этом формате содержимое двух страниц будет напечатано на одном листе бумаги. a2ps добавляет также свои хорошо отформатированные колонтитулы.
a2ps имеет множество параметров, они перечислены в табл. 22.4.
Таблица 22.4. Параметры команды a2ps
Параметр
Описание
--center-title текст
Текст для заголовка страницы в центре
--columns число
Число колонок для вывода страниц. По умолчанию 2
--footer текст
Текст для нижнего колонтитула
--guess
Вывести типы файлов, переданных программе в аргументах. Поскольку программа a2ps пытается преобразовывать и форматировать данные любых типов, этот параметр может пригодиться, чтобы понять, что a2ps будет делать с данным конкретным файлом
--left-footer текст
Текст для нижнего колонтитула слева
--left-title текст
Текст для заголовка страницы слева
--line-numbers=интервал
Выводить номера строк через заданный интервал
--list=defaults
Вывести настройки по умолчанию
--list=категория
Вывести возможные варианты настроек для указанной категории, где категорией может быть: delegations (внешние программы, которые будут использоваться для преобразования данных), encodings (кодировки), features (возможности), variables (переменные), media (размеры бумаги и пр.), ppd (известные описания принтеров PostScript), printers (принтеры), prologues (фрагменты кода, предшествующие нормальному выводу), style-sheets (поддерживаемые стили вывода), user-options (параметры пользователя)
--pages диапазон
Печатать страницы из указанного диапазона
--right-footer текст
Текст для нижнего колонтитула справа
--right-title текст
Текст для заголовка страницы справа
--rows число
Разместить страницы в указанное число рядов. По умолчанию 1
-B
Не выводить заголовки страниц
-b текст
Текст заголовка страницы
-f размер
Использовать шрифт указанного размера
-l число
Число символов в строке. Этот параметр и параметр -L (ниже) можно использовать, чтобы правильно разместить на странице файлы, разбитые на страницы с помощью других программ, таких как pr
-L число
Число строк на странице
-M имя
Формат бумаги, например A4
-n число
Вывести указанное число копий каждой страницы
-o файл
Вывести результат в указанный файл. Если в качестве имени файла указан - (дефис), используется стандартный вывод
-P принтер
Имя принтера для вывода. Если принтер не указан, используется системный принтер по умолчанию
-R
Вывести в книжной ориентации
-r
Вывести в альбомной ориентации
-T число
Установить табулостопы через каждое указанное число символов
-u текст
Текст для нижнего слоя на странице («водяной знак»)
Это далеко не полный список. В действительности программа a2ps имеет намного больше параметров.