On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

Работаем с PostScript.

1 Настройка принтера
2 Настройка a2ps для работы с русскими символами
3 Печать при помощи a2ps
    3.1 Другие полезные опции программы a2ps
4 Другие утилиты для работы с PostScript

1  Настройка принтера

Для того чтобы Linux знал, что у вас есть принтер(ы) вам необходимо создать учётную запись для каждого из принтеров в файле /etc/princap. В данной статье мы создадим учётную запись для двух сетевых принтеров HP: LJ4050 (ip:137.224.129.37) и DJ2500 (ip:137.224.129.36).

Вот, содержимое моего файла /etc/princap:

lp|hplj:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/hplj:\
        :rm=137.224.129.37:rp=raw:
lp1|hpdj:\
        :lp=/dev/null:sh:\
        :sd=/var/spool/lpd/hpdj:\
        :rm=137.224.129.36:rp=raw:

В первой строке определяется имя, под которым принтер будет известен системе. Так как принтер сетевой, мы указали параметр lp, указывающий на /dev/null (для локального принтера было бы необходимо указать параллельный порт, к которому подключён принтер). Параметр sd определяет каталог, который будет использован для очереди печати документов. Параметр rm указывает сетевой IP адрес принтера; параметр rp указывает имя устройства на удалённом принтере, через которое печатать (в данном случае raw, что является стандартом для печати PostScript на HP принтерах).

Теперь нам необходимо создать каталог очереди печати (от имени root пользователя), который мы указали в параметре sd файла printcap. В данном случае /var/spool/lpd/hplj для лазерного и /var/spool/lpd/hpdj для цветного струйного:

# mkdir /var/spool/lpd/hplj

В файле /etc/rc.d/rc.inet2 проверяем, запускается ли lpd.

Выполняем:

# /usr/sbin/lpd restart

Либо killall -HUP lpd, либо пере-загружаем компьютер. Теперь ваш Linux знает о существовании принтера и без проблем может выводить на печать документы без кириллицы.

2  Настройка a2ps для работы с русскими символами

Сама по себе утилита a2ps является очень мощным и удобным инструментом, который умеет преобразовывать всё что угодно в PostScript (Any to PostScript - a2ps). Начиная с версии 8.0 эта утилита поставляется с дистрибутивом. Но кириллические шрифты придётся установить вручную. Домашняя ftp страница программы:ftp://ftp.enst.fr/pub/unix/a2ps. Кириллические шрифты вы можете взять тут: ftp://ftp.enst.fr/pub/unix/a2ps/i18n-fonts-0.1.tar.gz. Разворачиваем архив, копируем fonts/ и afm/ в /usr/share/a2ps/:

# cp i18n-fonts-0.1.tar.gz /tmp
# cd /tmp
# tar -xvzf i18n-fonts-0.1.tar.gz
# cd i18n-fonts-0.1
# cp fonts/ afm/ /usr/share/a2ps -r

В каталоге /usr/share/a2ps/afm выполняем make_fonts_map.sh. Этот скрипт создаст fonts.map.new. Сохраняем старый fonts.map в fonts.map.orig и переименовываем fonts.map.new в fonts.map.

# cd /usr/share/a2ps/afm
# ./make_fonts_map.sh
# mv fonts.map fonts.map.orig
# mv fonts.map.new fonts.map

Теперь a2ps может печатать русский текст. Вы конечно можете при каждом её выполнении указывать параметр -X KOI8-R, но легче изменить настоечные файлы /etc/a2ps.cfg и /etc/a2ps-site.cfg. Я рекомендую произвести следующие изменения в этих файлах.

/etc/a2ps-site.cfg:

# Default encoding
Options: -encoding=KOI8-R
# Default medium
Options: -medium=A4

/etc/a2ps.cfg:

# Two virtual pages per sheet
Options: -2 #печатать по две страницы с каждой стороны листа.
# By default, single sided printing.
Options: -stumble #двусторонняя печать, с упорядочиванием лицевой и изнаночной стороны.
# Name of the document is the list of files
# (Don't put too many of them: it breaks some PS interpreters)
#Options: -title='#10!f|$n|, |'# закомментировал, так как я знаю, что печатаю.
# Header is the client of the job
#Options: -header=
# Title of the page is the (short) name of the current file
# or the first tagged text if there is
#Options: -center-title=#?1|$t1|$n| # опять таки, знаю я имя файла
# Left part of the title is the mod. date of the file
# or empty is there is a tag2
Options: -left-title='#?2||$e $T|'#удобно, показывает дату в шапке документа.
# Right part of the title is the page number
# or tag2 if there is
Options: -right-title='#?2|$t2|$Q|'# номера страниц.
# If in landscape, print date on the left hand side
# If portrait, then print date on recto, and sheet # on verso
#Options: -left-footer=#?l!
# Center footer is the list of files on this sheet if landscape
#Options: -footer='#?l|#!s-$f-, -||'# список печатаемых файлов.
# If in landscape, print date on the right hand side
# If portrait, then print date on verso, and sheet # on recto
#Options: -right-footer=#?l!

3  Печать при помощи a2ps

Для распечатки текстового файла в кодировке KOI8-R из командной строки просто выполните:

# a2ps -Pимяпринтера имяфайла.txt

Если вы хотите просмотреть перед печатью, что же у вас получается, выполните:

# a2ps -Pимяпринтера имяфайла.txt -o выходной_файл.ps

И просмотрите выходной_файл.ps при помощи какого-нибудь просмотрщика, например gs. Если всё хорошо, выполните:

# lpr выходной_файл.ps
выходной_файл.ps

3.1  Другие полезные опции программы a2ps

4  Другие утилиты для работы с PostScript

psbook   Предположим, у вас есть ps файл. Вы хотите распечатать его в ''книжном'' формате (по две страницы на каждом развороте листа, сортированные особым образом). Для этого можно воспользоваться программами из пакета psbook:
$ psbook C++Programming-HOWTO.ps | psnup -2 > C++.ps


File translated from TEX by TTH, version 2.89.
On 10 Jun 2001, 13:50.


Литература по Linux