[Comm] [UNDOCUMENTED] Re: [SOLVED] foo2oak & Ghostscript & Kyocera KM-1635
ABATAPA
=?iso-8859-1?q?altlinux-community_=CE=C1_yandex=2Eru?=
Ср Сен 19 15:20:47 MSD 2007
18 сентября 2007 г. Maks Re написал:
> поддерживаю...
> у самого есть аткой аппарат в месте одном...
Хм... Тогда так...
Посмотрев, что выходит "из-под пера" драйвера Windows, я узрел в начале
файла "OAK".
Сделав
# apt-cache search oak
я получил
Lfoo2zjs - ZJS (some HP/Minolta) printer driver
Установив пакет, я добавил принтер, выбрав производителя "Generic",
модель "OAKT Printer foo2oak". Попробовав печатать на нем, я увидел, что
несмотря на любые настройки позиции листа, печать происходит _вдоль_
принтера, а т.к. у нас бумага лежит вдоль барабана (лист A4 в кассете
вертикально) для равномерности износа последнего - я получал печать поперек
листа. И все бы ничего - в конце-концов, есть же лоток для ручной подачи, -
но лист печатался ЗЕРКАЛЬНО по длине листа! 8(
Пришлось думать, как "отзеркалить" выводимое изображение.
Сначала хотел использовать GhostScript, однако, скопировав оригинальный
/usr/bin/foo2oak в /usr/bin/foo2oak.orig:
# cp -a /usr/bin/foo2oak /usr/bin/foo2oak.orig
сделав простую "оболочку" (wrapper) /usr/bin/foo2oak вида:
#/bin/bash
echo "$@" >/tmp/foo2oak.log
cat > /tmp/foo2oak.out
foo2oak.orig < /tmp/foo2oak.out
я получил /tmp/foo2oak.out, на который file невозмутимо сказал, что это PNM
image.
Тогда, посмотрев все исполняемые файлы, которые начинаются с 'pnm', я нашел
решение - pnmsplit для разбиения общего PNM на отдельные файлы-страницы, и
pnmflip для "зеркалирования"/вращения (из netpbm).
В итоге, после нескольких экспериментов, я исправил /usr/bin/foo2oak так:
#!/bin/bash
TMPFILE=`mktemp -t foo2oak.$$.` || exit 1
pnmsplit - $TMPFILE%d.pnm -padname=3
for i in $TMPFILE[0-9]*.pnm ; do pnmflip -transpose < $i > $i.new; done
cat $TMPFILE[0-9]*.pnm.new | foo2oak.old "$@"
/bin/rm $TMPFILE[0-9]* $TMPFILE
Так же пришлось исправить и /usr/bin/foo2oak-wrapper, т.к. почему-то не
получалось одними лишь свойствами драйвера / параметрами страницы выбрать
источник бумаги (нижний лоток):
#!/bin/bash
foo2oak-wrapper.orig -p9 -s1 -op
Я понимаю, что все это некрасиво, но... Меня просто утомило, что для того,
чтобы напечатать страницу на этом "поделии", мне приходится перебрасывать
файл в Windows. И в тот вечер чаша моего терпения иссякла. :)
Единственное неудобство (хотя - может, и достоинство) сейчас - это то, что
после печати таким образом этот МФУ ждет вмешательства пользователя,
сигнализируя соотв. значком, т.к. формат и ориентация печатаемого листа
(Plain A4) не совпадают с тем, что имеется в лотке. Приходится вставать,
подходить к принтеру, жать кнопки "Printer" и "Продолжить" (большую
зеленую) - один раз на задание.
Зато - можно наконец-то печатать. :)
PS: Если у кого-то другая ориентация бумаги - придется поменять параметры
pnmflip, и изменить параметры для foo2oak-wrapper.orig, которые определяют
формат и ориентацию бумаги. Хотя, советую печатать "поперек" листа (в кассете
A4 вертикально) - как я уже упоминал, при этом барабан будет изнашиваться
равномерно (а не только в середине на ширину A4), да и порошок будет
расходоваться экономнее.
PPS: Против таких "недопринтеров", но... Купили "по совету знакомых спецов", и
было поздно.
--
ABATAPA
Подробная информация о списке рассылки community