с программой nenscript для преобразования
Большинство дистрибутивов Linux поставляется с программой nenscript для преобразования ASCII документов в Postscript. Следующий скрипт на perl делает жизнь пользователя легче, обеспечивая простой интерфейс для печати используя smbprint.
Использование: print [-a|c|p] <filename>
-a печатает <filename> как ASCII -c печатает <filename> отформатированный как исходный код -p печатает <filename> как Postscript Если опции не заданы, программа попробует определить тип файла и печатать соответственно
Используя smbprint для печати ASCII файлов, скрипт следит за длинными строками. Если возможно, этот скрипт разрывает длинную строку на пробеле (вместо разрыва в середине слова).
Форматирование исходного кода выполняется с помощью программы nenscript. Она берет ASCII-файл и форматирует его в 2 колонки с заголовком (дата, имя файла и т.п.). Эта программа также нумерует строки. Используя этот скрипт как пример, могут быть добавлены другие типы форматирования.
Postscript-документы являются уже отформатированы, так что они печатаются сразу.
#!/usr/bin/perl
# Скрипт: print # Авторы: Brad Marshall, David Wood # Plugged In Communications # Дата: 960808 # # Используется для печати на сервис oreilly, который расположен на # сервере zimmerman # Назначение: Берет файлы разных типов как аргумент и обрабатывает # их соответственно для передачи на скрипт печать Samba. # # В настоящее время поддерживаются типы файлов: # # ASCII - Если длина строки длиннее чем $line_length символов, то # переносит строку на пробеле # Postscript - Берет без обработки # Code - Форматирует в Postscript (используя nenscript), чтобы # отображать правильно (альбомный формат, фонт и т.п.) #
# Установить максимальную длину строки ASCII текста $line_length = 76;
# Установить путь к скрипту печати Samba $print_prog = "/usr/bin/smbprint";
# Установить путь и имя nenscript (конвертера ASCII-->Postscript) $nenscript = "/usr/bin/nenscript";
unless ( -f $print_prog ) { die "Can't find $print_prog!"; } unless ( -f $nenscript ) { die "Can't find $nenscript!"; }