Технологии использования фильтров печати: a2ps, enscript etc... (Как выводить файлы с кириллицей cp866, koi8-r командой lpr на PS-принт)

Для новичков как вообще в Linux, так и в конкретной теме, к которой относится вопрос.

Модератор: Bizdelnick

malor
Сообщения: 335

Технологии использования фильтров печати: a2ps, enscript etc...

Сообщение malor »

Мне нужно послать на печать файл в кодировке cp866. Но a2ps и enscript не имеют шрифтов для 866-й кодировки.
Я вручную переделывал файл в koi8-r, затем посылал на печать(ASPLinux 11) командой :

Код: Выделить всё

[root@localhost experiment]# a2ps -Xkoi8 -Pmy5000 o627_koi8r.txt
[o627_koi8r.txt (простой): страниц: 2, листов: 2
request id is my5000-7 (1 file(s))
[Всего: страниц: 2, листов: 2] отправлен на принтер `my5000'
[27 строк усечено]
Что значит усечено?
Когда я пробовал послать тот же файл, но без расширения txt, то было :

Код: Выделить всё

[root@localhost experiment]# a2ps -X koi8 -Pmy5000 o627_koi8r
[o627_koi8r (двоичный): игнорирован]
[Выходной поток пуст]
Почему игнорирование происходит?

Пробовал послать на печать o627_koi8r.txt командой lpr, так linux писал что-то наподобие "неподдерживаемый формат". Но разве система печати имея a2ps, с добавленными туда кириллическими шрифтами, не в состоянии использовать a2ps?
Что мешает ей? каким она тогда пыталась воспользоваться фильтром печати?

Добавлял,согласно инструкциям, также и в enscript кириллические шрифты.При попытке печати:

Код: Выделить всё

[root@localhost experiment]# enscript --font=Textbook8 --encoding=koi8 o627_koi8r.txt
[ 1 pages * 1 copy ] sent to printer
2 lines were wrapped
3 non-printable characters
[root@localhost experiment]# lpq
my5000 is ready and printing
Rank    Owner   Job     File(s)                         Total Size
active  root    10      (stdin)                         70656 bytes
Не распечатал...Что за "non-printable characters" ?

Кроме того, сам я не собираюсь вечно вручную переводить в Koi8-r файлы перед печатью, поэтому хотелось бы указать linux'у перед отправкой на печать это производить. Будет это возможно сделать в файле /etc/printcap?Сейчас там(в RH7.1) такая есть строка у каждого принтера:if=/usr/share/printconf/mf_wrapper. Что такое mf_wrapper? Нормально, если я заменю "if=/usr/share/printconf/mf_wrapper" на "if=iconv -fcp866 -tkoi8-r| /usr/share/printconf/mf_wrapper" ?

Slackware 10.2, RHEL 4 AS, ASPLinux 11, CentOS 4.2, RH 7.1; принтер - HP LJ 5000
Спасибо сказали:
Аватара пользователя
Bolverk
Бывший модератор
Сообщения: 1571
ОС: Cygwin

Re: Технологии использования фильтров печати: a2ps, enscript etc...

Сообщение Bolverk »

в кодировке koi8-r не хватает нескольких символов, которые есть в cp866, может тут собака порылась
Спасибо сказали:
malor
Сообщения: 335

Re: Технологии использования фильтров печати: a2ps, enscript etc...

Сообщение malor »

Нашел файл /etc/foomatic/filter.conf в ASPLinux11, RHEL4AS. Там есть сткроки:

Код: Выделить всё

# Enter here your personal command for converting non-PostScript files
# (especially text) to PostScript. Supported commands are "a2ps",
# "enscript" or "mpage". Command line options will be automatically
# set by "foomatic-rip".
textfilter: a2ps
Последняя была закомментирована, раскомментил, но при печати файла командой lpr она все равно не пользуется фильтром a2ps(т.к. вышли крякозябры, и без специфичной для a2ps рамочки вокруг текста, с различными данными, типа названия файла, номер страницы и т.п.) Может не там нужно было указывать Купсу на использование a2ps?

В Slackware 10.2 я не нашел файл filter.conf.
Посмотрел в /usr/bin/foomatic, там есть строки :

Код: Выделить всё

# Enter here your personal command for converting non-postscript files
# (especially text) to PostScript. If you leave it blank, at first the
# line "textfilter: ..." from /etc/foomatic/filter.conf is read and
# then the commands given on the list below are tried, beginning with
# the first one.
# You can set this to "a2ps", "enscript" or "mpage" to select one of the
# default command strings.
my $fileconverter = "";
Последнюю строку заменил на "my $fileconverter = "a2ps";" , но ситуация не изменилась,т.е.выходило аналогично тому, что и в ASPLinux. Как быть?

Другое описание моих целей: http://www.opennet.ru/openforum/vsluhforumID1/64949.html
Спасибо сказали: