Еще одна возможность: a2ps

We use cookies. Read the Privacy and Cookie Policy

Программа a2ps довольно интересна. Как можно догадаться по ее имени, это программа преобразования одного формата в другой, но не только. Первоначально ее имя означало ASCII to PostScript (из ASCII в PostScript) и она использовалась для подготовки текстовых файлов к печати на принтерах с поддержкой PostScript. С годами, однако, возможности программы росли, и теперь ее имя означает Anything to PostScript (все что угодно — в PostScript). Несмотря на то что имя программы говорит, что это — программа преобразования одного формата в другой, в действительности она является программой печати. Она выводит результаты своей работы в свой вывод по умолчанию — в системный принтер, а не в стандартный вывод. По умолчанию программа действует как программа «структурной печати», улучшая формат вывода. Мы можем с ее помощью создать PostScript-файл на своем рабочем столе:

[me@linuxbox ~]$ 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 имеет намного больше параметров.

ПРИМЕЧАНИЕ

Программа a2ps продолжает активно развиваться и поныне. В ходе ее тестирования я заметил некоторые различия в поведении этой программы в разных дистрибутивах. В CentOS 4 вывод всегда по умолчанию производился в стандартный вывод. В CentOS 4 и Fedora 10 по умолчанию использовался формат бумаги A4, несмотря на то что система была настроена на использование бумаги формата US-Letter. Мне удалось преодолеть эту проблему, только явно передав соответствующие параметры. В Ubuntu 8.04 программа a2ps действует, как описывается в документации.

Кроме того, существует еще одна программа форматирования, которую можно использовать для преобразования текста в формат PostScript. Она называется enscript и способна выполнять почти те же виды форматирования и печати, что и a2ps, но, в отличие от последней, принимает только текстовые данные.