08.11.2012

Описание установки принтера PROTON в UNIX


Один из наших клиентов - Владимир Беляевский, после приобретения принтера Proton столкнулся с задачей заставить работать принтер с WINE. Поскольку тема специфичная, поисковики не дали никаких результатов. Самым похожим решением оказался расклонированный по всем форумам документ, основанный на взаимодействии виртуального PDF принтера и скрипта, написанного на Pythone. После чего была написана эта статься, так как ничего толкового в сети найти не удалось.

Все работы проводились с OracleLinux (Red Hat). Принтер подключен через USB.

Процесс:
Чтобы узнать подключен ли принтер достаточно выполнить команду:
$ ls /dev/usb
Получается что-то вроде:
lp0

Это означает, что принтер подключен. Теперь нужно проверить работоспособность, отправив на принтер прикрепленный файл test.txt командой:
$ cat test.txt > /dev/usb/lp0

Как видите, для работы с принтером не нужен драйвер Linux. И работает на порядок лучше. Этикетка маленькая потому что так написано в test.txt а не потому что с линуксом что-то не так.

Задача заключалась в том, чтобы заставить работать принтер с WINE таким образом, чтобы была возможность печатать на принтер этикеток из под Domino (Система автоматизации domino.ru). Так как Domino умеет формировать этикетку в виде управляющих символов языка EPL2, решение пришло само собой.
Необходимо создать скрипт bash, который проверяет наличие файлов .txt в определённом каталоге, отправляет на печать и перемещает в другой каталог. Далее нужно поместить скрипт в планировщик CRON и установить инициализацию через каждые 5-10 секунд. Так предлагает сделать автор статьи. Вероятно, Вы решите сделать это как-то иначе.

Для тех у кого система автоматизации печатает уже готовый штрих код (или что-то подобное) - есть обычный драйвер, который можно скачать тут:
http://opensource.apple.com/source/cups/cups-136.18/cups/ppd/
Инструкция по доработке .ppd находится там же.

А вот тоже самое но печать через драйвер принтер в CUPS

lpr -P <printer-name> -l <epl-file>

Маленький скрипт:

barcodeprint.sh

#!/bin/bash
lpr -P <printer-name> -l $1

chmod +x barcodeprint.sh

Теперь необходимо реализовать открытие файлов подобных test.txt через скрипт.
Ещё можно добавить перекодировку из cp1251win в UTF-8 таким образом:

find . -name '*.txt' | while read i; do iconv -f WINDOWS-1251 -t UTF-8 "$i" >tmp; mv tmp "$i"; done


Возврат к списку