Как распечатать как из командной строки, так и через CUPS?

У меня есть принтер, который используется для двух целей:

  • Печать обычных документов (Word, интернет-страниц и т. Д.)
  • Прямая печать из командной строки (сделано 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.

6
задан 15 November 2011 в 17:21

5 ответов

У меня та же проблема, если вы всегда добавляете права доступа к файлу lp0, вы должны отредактировать правила принтера:

$ gksudo gedit /lib/udev/rules.d/70-printers.rules

add [, MODE="0666"]

Файл содержит: [ 115]

ACTION=="add", ... KERNELL="lp*" ... , MODE="0666"
0
ответ дан 15 November 2011 в 17:21

Откройте веб-браузер для http://localhost:631/, чтобы настроить CUPS. Вы должны иметь возможность печатать из командной строки через echo "text" | lpr. Используйте lpstat -t, чтобы просмотреть всю информацию о состоянии CUPS, lpstat -d, чтобы увидеть назначение печати по умолчанию системы, man lpstat для более, man lpr для указания, какой принтер.

Вся печать должна проходить через CUPS - она ​​управляет очередями, принтерами, ...

0
ответ дан 15 November 2011 в 17:21

Вы можете попробовать добавить его в качестве «сырого» принтера в CUPS. Я не уверен, что это работает, но стоит попробовать.

Вы должны будете повторно занести в черный список usblp для этого. Добавьте Epson в CUPS, выберите «Generic» в качестве производителя и «Raw Queue» в качестве устройства. Кроме того, вам может понадобиться использовать lpr -o raw filename для печати чего-либо.

0
ответ дан 15 November 2011 в 17:21

Я сталкиваюсь с чем-то похожим. Я решил убедиться, что только чековый принтер подключается через USB (принтер общего назначения будет подключаться через сетевой интерфейс). Это позволяет мне удалить черный список, распечатать его непосредственно на устройстве и использовать CUPS для сетевого принтера.

Это не совсем оптимально. Было бы неплохо иметь возможность подключить все устройства через USB, а затем выбрать, какие из них мы не хотим, чтобы usblp захватывал. Однако, в то же время, это, кажется, лучший вариант. Возможно, это не то, что вы хотите услышать, но это единственный способ, который я узнал.

Теперь для обычных читателей причина, по которой принтеры чеков обычно не подключаются через CUPS, заключается в том, что в розничных средах скорость здесь имеет значение, а параллелизм не является фактором. Вам не нужно управление принтером, управление очередью и тому подобное. Что вам действительно нужно, так это то, что когда он печатает, он печатает сразу. Не через несколько секунд, а сразу. Каждые несколько секунд вы можете сбрить рабочий процесс - это секунды, которые каждый человек в очереди не ждет. Умножьте на длину строки, и вы увидите проблему. Следовательно, производительность на каждом этапе критически важна, и поскольку у вас обычно есть один чековый принтер, и он обычно печатает только для приложения торговой точки, CUPS стоит гораздо дороже, чем он предлагает.

Это не значит, что не существует среды, в которой вы бы настроили это через CUPS. Рестораны, как правило, имеют похожие принтеры на своих кухнях, и проблемы с параллелизмом там значительны, поэтому вы должны использовать CUPS там. Однако это не всегда лучший инструмент для работы, и принтеры чеков для розничной продажи не придерживаются тех же предположений, что и CUPS.

0
ответ дан 15 November 2011 в 17:21

Почему вы не используете lpr для печати из командной строки? Например:

echo "text" > /tmp/someFileName
lpr -P YourPrinter /tmp/someFileName

Это обходной путь, но он должен быть простым способом сделать то, что вы хотите, без изменения некоторых разрешений ...

0
ответ дан 15 November 2011 в 17:21

Другие вопросы по тегам:

Похожие вопросы: