Добавить в цитаты Настройки чтения

Страница 79 из 113



Подготовка файлов к печати

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

pr — преобразование текстовых файлов для печати

Мы уже касались программы pr в предыдущей главе. А теперь исследуем все богатство ее параметров, используемых при печати. В краткой исторической справке развития технологий печати рассказывалось, что символьные принтеры использовали мноноширинные шрифты, что обеспечивало фиксированное число символов в строке и строк на странице. Программа pr используется для выравнивания текста в соответствии с заданным размером страницы, с учетом дополнительных заголовков и полей на странице. Наиболее часто используемые параметры перечислены в табл. 22.1.

Таблица 22.1. Наиболее часто используемые параметры команды pr

Параметр

Описание

+первая

[:последняя]

Вывести диапазон страниц, начиная со страницы с номером первая и заканчивая страницей с номером последняя (если указано)

-колонок

Вывести содержимое страницы в указанное число колонок

-a

По умолчанию, когда задан вывод в несколько колонок, колонки организованы по вертикали. Параметр -a (across — поперек) позволяет организовать  колонки по горизонтали

-d

Вывести с двойным интервалом

-D формат

Формат вывода даты в заголовке страницы. Описание строки формата можно найти в странице справочного руководства (man) для команды date

-f

Использовать символ перевода формата вместо возврата каретки для отделения страниц друг от друга

-h заголовок

Текст для вывода в центре заголовка страницы вместо имени файла

-l длина

Длина страницы. По умолчанию длина устанавливается равной 66 строкам (соответствует формату US-letter с плотностью печати 6 строк на дюйм)

-n

Нумеровать строки

-o отступ

Создать левое поле, выполнив отступ указанного размера (в символах)

-w ширина

Ширина страницы в символах. По умолчанию ширина устанавливается равной 72 символам

Программа pr часто используется в конвейерах в роли фильтра. Следующий пример создает список содержимого каталога /usr/bin и с помощью pr выводит его в три колонки с разбивкой на страницы:

[[email protected]/* */ ~]$ ls /usr/bin | pr -3 -w 65 | head

2012-02-18 14:00                                       Page 1

[                     apturl                bsd-write

411toppm              ar                    bsh

a2p                   arecord               btcflash

a2ps                  arecordmidi           bug-buddy

a2ps-lpr-wrapper      ark                   buildhash

Отправка задания печати на принтер

Пакет программ печати CUPS поддерживает два метода печати, исторически используемых в Unix-подобных системах. Первый метод, с названием Berkeley, или LPD (используется в BSD-версиях Unix), основан на использовании программы lpr; второй метод, с названием SysV (используется в версиях Unix System V), основан на использовании программы lp. Обе программы работают примерно одинаково. Выбор той или иной зависит от личных предпочтений.

lpr — печать файлов (в стиле Berkeley)

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

[[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-файл на своем рабочем столе: