У меня есть принтер, который используется для двух целей:
echo "text" > /dev/usb/lp0
) Все это работало нормально в предыдущей версии Ubuntu. Однако недавно мы обновились до 11.10 и столкнулись с проблемой. Прежде всего, принтеры больше не добавляются в / dev / usb. Поэтому я не могу повторить этот путь и не могу выполнить печать из командной строки.
После некоторых хлопот, я смог найти обходной путь. Этот обходной путь редактировал /etc/modprobe.d/blacklist-cup-usblp.conf
. Этот файл гласит:
# cups talks to the raw USB devices, so we need to blacklist usblp to avoid
# grabbing them
blacklist usblp
После комментирования этого черного списка устройство правильно отображается в / dev / usb как lp0. У меня была проблема с разрешениями lp0, но это было решено ответом Луиса Фелипе Баррера Мора.
Однако теперь у меня есть одна важная проблема, которую нужно решить. После того, как я прокомментировал черный список, принтер перестал работать при печати из документов Word. Это логично, потому что я отключаю то, что нужно CUPS. Таким образом, теперь у меня есть только возможность включить обычную печать CUPS и печать без командной строки, или у меня печать из командной строки и печать без CUPS.
Для полноты: на самом деле у меня два принтера подключены одновременно. Один используется для печати как с использованием CUPS, так и из командной строки. Другой - чековый принтер Epson - используется только для печати из командной строки. Я потратил много дней, пытаясь запустить его с помощью CUPS, но это было невозможно. Однако это означает, что команда lpr
не решит проблему, потому что я не могу заставить этот второй принтер работать под CUPS. Мне действительно нужно иметь возможность одновременно обращаться к /etc/dev/lp0
(или аналогичному пути) и печатать с использованием CUPS.
У меня та же проблема, если вы всегда добавляете права доступа к файлу lp0, вы должны отредактировать правила принтера:
$ gksudo gedit /lib/udev/rules.d/70-printers.rules
add [, MODE="0666"]
Файл содержит: [ 115]
ACTION=="add", ... KERNELL="lp*" ... , MODE="0666"
Откройте веб-браузер для http://localhost:631/
, чтобы настроить CUPS. Вы должны иметь возможность печатать из командной строки через echo "text" | lpr
. Используйте lpstat -t
, чтобы просмотреть всю информацию о состоянии CUPS, lpstat -d
, чтобы увидеть назначение печати по умолчанию системы, man lpstat
для более, man lpr
для указания, какой принтер.
Вся печать должна проходить через CUPS - она управляет очередями, принтерами, ...
Вы можете попробовать добавить его в качестве «сырого» принтера в CUPS. Я не уверен, что это работает, но стоит попробовать.
Вы должны будете повторно занести в черный список usblp
для этого. Добавьте Epson в CUPS, выберите «Generic» в качестве производителя и «Raw Queue» в качестве устройства. Кроме того, вам может понадобиться использовать lpr -o raw filename
для печати чего-либо.
Я сталкиваюсь с чем-то похожим. Я решил убедиться, что только чековый принтер подключается через USB (принтер общего назначения будет подключаться через сетевой интерфейс). Это позволяет мне удалить черный список, распечатать его непосредственно на устройстве и использовать CUPS для сетевого принтера.
Это не совсем оптимально. Было бы неплохо иметь возможность подключить все устройства через USB, а затем выбрать, какие из них мы не хотим, чтобы usblp захватывал. Однако, в то же время, это, кажется, лучший вариант. Возможно, это не то, что вы хотите услышать, но это единственный способ, который я узнал.
Теперь для обычных читателей причина, по которой принтеры чеков обычно не подключаются через CUPS, заключается в том, что в розничных средах скорость здесь имеет значение, а параллелизм не является фактором. Вам не нужно управление принтером, управление очередью и тому подобное. Что вам действительно нужно, так это то, что когда он печатает, он печатает сразу. Не через несколько секунд, а сразу. Каждые несколько секунд вы можете сбрить рабочий процесс - это секунды, которые каждый человек в очереди не ждет. Умножьте на длину строки, и вы увидите проблему. Следовательно, производительность на каждом этапе критически важна, и поскольку у вас обычно есть один чековый принтер, и он обычно печатает только для приложения торговой точки, CUPS стоит гораздо дороже, чем он предлагает.
Это не значит, что не существует среды, в которой вы бы настроили это через CUPS. Рестораны, как правило, имеют похожие принтеры на своих кухнях, и проблемы с параллелизмом там значительны, поэтому вы должны использовать CUPS там. Однако это не всегда лучший инструмент для работы, и принтеры чеков для розничной продажи не придерживаются тех же предположений, что и CUPS.
Почему вы не используете lpr для печати из командной строки? Например:
echo "text" > /tmp/someFileName
lpr -P YourPrinter /tmp/someFileName
Это обходной путь, но он должен быть простым способом сделать то, что вы хотите, без изменения некоторых разрешений ...