Про cups и русский текст
Feb. 2nd, 2009 10:39 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Поставил таки дома 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.
А я вот, нехороший человек люблю 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.
no subject
Date: 2009-02-02 09:59 pm (UTC)