vitus_wagner: My photo 2005 (Default)
[personal profile] vitus_wagner
Поставил таки дома cups. Решил разобраться, а как этим cups-ом (1.3.8-1lenny4.1) plain-текст то печатать. Да, я знаю, современный лемминг, на которого этот cups рассчитан, plain-текст не печатает, он для того чтобы список покупок в магазине напечатать, OpenOffice запускает.
А я вот, нехороший человек люблю ls|lp и тому подобное делать. И вообще основной редактор у меня vim.

Выяснилось следующее:
1. texttops из cups умеет плюс-минус корректно генерировать Postscript из русского utf-8.
Он правильно энкодит буковки, и даже кладет туда шрифт из /usr/share/cups/fonts/Courier.
2. Кодировок, отличных от utf-8 он не умеет. Совсем. Разучился. При явном запуске texttops с CHARSET=koi8-r оно ругается что нет такого файла /usr/share/cups/charsets/koi8-r. А поскольку lp, запущенный в локали ru_RU.KOI8-R что-то да печатает, а ls |iconv -t utf-8| lp печатает то, что надо, lp НЕ ПЕРЕДАЕТ фильтру charset.
3. Шрифт, который у них называется Courier, это на самом деле слегка подхаканный Urw Nimbus Mono версии 1.05, в котором русских букв нет.
4. Если взять Urw Nimbus Mono 1.06 из пакета t1-cyrillic, сконвертировать его в pfa-формат, и слегка подредактировать заголовки, чтобы он считал себя Courier-ом, а не Nimbus-ом, русские буквы на бумаге даже вполне появляются.
5. В /usr/share/cups/charsets/utf-8 утверждается, что для диапазона 0x0400-0x04ff надо использовать Courier, Courier-Bold etc. Хотя см. п. 3.

Bug #513956

И еще. Прописал я тут Location и Description купсовским принтерам через web-интерфейс русскими буквами. Результат - офигительный. В Gtk-шных диалогах все показывается как надо, независимо от локали, в которой запущено приложение. В OpenOffice.org, запущенном в локали UTF-8 - все в порядке. Но если запустить OO.o в какой другой локали, мы увидим... Ну сами понимаете что мы увидим, если программа покажет utf-8 строку, думая что она koi8-r или cp1251.

Date: 2009-02-02 08:12 pm (UTC)
From: [identity profile] vadiml.livejournal.com
если не ошибаюсь, печать обычного текста lpr -l

я когда-то программы на foxpro 2.6 из dosemu на матричник заставлял печатать, там как раз надо было без проебразований.

А в остальных случаях -- тоже через iconv

Date: 2009-02-02 08:14 pm (UTC)
From: [identity profile] vadiml.livejournal.com
Зато у меня тогда fox печатал на лазерники и струйники, на многих из которых под виндой нельзя было такое сделать :)

Date: 2009-02-02 08:31 pm (UTC)
vinsent_ru: (Default)
From: [personal profile] vinsent_ru
я помню для нужд банка делал скрипт-фильтр на enscript, вроде, который конвертил cp866 в koi8 и затем гнал в .ps, используя какойто аццкий шрифт Kurier, это был единственный шрифт где все в порядке было с псевдографикой
а уже .ps шел на CUPS и в принтера

Date: 2009-02-02 09:15 pm (UTC)
vinsent_ru: (Default)
From: [personal profile] vinsent_ru
это вообще то год другой назад было на SLES 9
чтото других шрифтов подходящих не нашлось

Date: 2009-02-02 09:59 pm (UTC)
From: [identity profile] buldozr.livejournal.com
Похоже, победное шествие UTF-8 зашло дальше, чем мы надеялись. Эдак скоро 8-битную кривизну совсем перестанут поддерживать.

Date: 2009-02-02 10:11 pm (UTC)
From: [identity profile] relf.livejournal.com
для печати текста я использую a2ps

Date: 2009-02-03 03:40 pm (UTC)
From: [identity profile] relf.livejournal.com
может быть, но меня всем устраивает.
utf-8 я не пользуюсь.

Date: 2009-02-02 10:43 pm (UTC)
From: [identity profile] besm6.livejournal.com
У меня фильтр для печати текста, если он еще не сломан (а кажется, еще не сломан) успешно делает выводы на основе $CHARSET. Ты его можешь проверить на cougar (нет, я не до такой степени сдурел, чтобы пользоваться texttops, там a2ps стоит). Если в lenny сломали - это повод запостить баг.

Date: 2009-02-03 11:10 am (UTC)
From: [identity profile] besm6.livejournal.com
Я в курсе, что на cougar etch. А если из 1.3 документированно оторвали передачу переменных окружения в фильтр, то об этом надо постить багу в апстрим.

Потому что для меня основное конкурентное преимущество CUPS перед LPD было ровно в том, что в LPD'шный фильтр передать текущую кодировку было невозможно, и поэтому невозможно было печатать текст командой lpr. А в купсовский - возможно, и поэтому печатать текст, который я вижу, можно было просто командой lp.

Date: 2009-02-03 01:17 pm (UTC)
From: [identity profile] besm6.livejournal.com
Еще надо подумать, не логичнее ли производить перекодировку из текущей локали в utf-8 на уровне клиента, а не фильтров.

Так на клиенте нет разницы, в utf-8 или сразу в PostScript...

Date: 2009-02-03 03:11 pm (UTC)
From: [identity profile] besm6.livejournal.com
А вот процедура преобразования plain text в postscript - дело тонкое.

Именно. Поэтому возможность посмотреть, что получилось, до того, как оно потратило пол-пачки бумаги, часто полезна. Если уж нету готового средства "попросил напечатать - и оно печатает", если все равно что-то настраивать, то лучше настраивать сразу преобразование в PostScript. И лучше - не купсовским texttops... Может, он и крут безмерно на предмет UTF-8, но вот когда мне попадется UTF-8, который невозможно перекодировать в то, что понимает a2ps (и при этом texttops его реально может - а то что-то я подозреваю, что вовсе не так он крут, и об деванагари обломается на раз...), тогда я этим ублюдечком и воспользуюсь. Пока ни разу не попался.

Date: 2009-02-11 10:27 pm (UTC)
From: [identity profile] serge-g239.livejournal.com
paps (http://paps.sourceforge.net/) ???

Date: 2009-02-12 09:04 am (UTC)
From: [identity profile] serge-g239.livejournal.com
Pango, вообще говоря, не зависит от Х. Это в дебиане всё зависит от всего. Но от этого конечно не легче :)

ldd /usr/bin/paps
linux-gate.so.1 => (0xffffe000)
libpangoft2-1.0.so.0 => /usr/lib/libpangoft2-1.0.so.0 (0xb7ef8000)
libpango-1.0.so.0 => /usr/lib/libpango-1.0.so.0 (0xb7eb7000)
libm.so.6 => /lib/libm.so.6 (0xb7e91000)
libfontconfig.so.1 => /usr/lib/libfontconfig.so.1 (0xb7e66000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7de5000)
libz.so.1 => /lib/libz.so.1 (0xb7dd2000)
libexpat.so.1 => /usr/lib/libexpat.so.1 (0xb7db0000)
libgobject-2.0.so.0 => /usr/lib/libgobject-2.0.so.0 (0xb7d71000)
libgmodule-2.0.so.0 => /usr/lib/libgmodule-2.0.so.0 (0xb7d6c000)
libdl.so.2 => /lib/libdl.so.2 (0xb7d68000)
libglib-2.0.so.0 => /usr/lib/libglib-2.0.so.0 (0xb7c97000)
libc.so.6 => /lib/libc.so.6 (0xb7b5d000)
/lib/ld-linux.so.2 (0xb7f50000)

Profile

vitus_wagner: My photo 2005 (Default)
vitus_wagner

May 2025

S M T W T F S
    1 2 3
4 56 7 8 9 10
11 12 131415 1617
1819202122 2324
252627 28293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 30th, 2025 03:29 pm
Powered by Dreamwidth Studios