kiltum (kiltum) wrote,
kiltum
kiltum

Решил проблему с принтером. Методом грязного хака, но всё же.

Итак, есть трабла: принтер не печатает русские буквы, хотя если распечатать в ps файл, всё прекрасно видно.

Решение: пропустить через постскриптный "дистиллятор" /usr/bin/ps2ps. Если говорить в нужном нам разрезе, эта штука преобразует шрифты в кривые. Файлик получается чуть побольше (а если картинку печатаем, то гораздо больше), но зато пофиг, есть шрифты в принтере, какие у них начертания и так далее.

Просто так подставить "дистиллятор" не получится, поэтому рисуем маленький шелловский скриптик и помещаем его в /usr/lib/cups/filter


#!/bin/bash
ARGS=6
FILEIN=`mktemp`
FILEOUT=`mktemp`
if [ $# -ne "$ARGS" ]
then
#get file from stdin
cat > $FILEIN
else 
#get file from $6
cat $6 > $FILEIN
fi
/usr/bin/ps2ps $FILEIN $FILEOUT
cat $FILEOUT
rm $FILEIN $FILEOUT


Лезем в /etc/cups/mime.convs и меняем строчку
application/postscript application/vnd.cups-postscript 33 pstops
на строчку
application/postscript application/vnd.cups-postscript 33 ps2ps
Перезагружаем cups и начинаем радоваться жизни. Я стал радоваться еще сильнее, потому что таймс на стороне принтера выглядит чуть-чуть корявее того, что выходит с линукса. Автоматом с русским исправилась и проблема шрифтов со всякими иероглифами - они тоже стали печататься - лишь бы xfs про них знал.

Update: А можно выбрать вместо 1320 просто 1300 и установить конвертацию всего в PS1 - эффект получается тот же самый.
Subscribe
  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 11 comments