Как печатать из приложения-киоска в Ubuntu Core 18 на подключенном USB-принтере?

Как печатать из приложения-киоска в Ubuntu Core 18 на подключенном USB-принтере?

Я новичок в Ubuntu Core и Snaps, поэтому, пожалуйста, будьте добры ко мне.

Я считаю, что мне не хватает знаний в понимании того, как работают и взаимодействуют друг с другом snap-ы. Прочитал об интерфейсах/подключениях snap-ов, штекерах и слотах и ​​не могу поверить, что печать с snap-ов невозможна.

Немного предыстории: На Ubuntu Core 18, установленном на Intel NUC, я пытаюсь запустить киоск, используя приложение киоска на базе Electron (на основе руководства по UbuntuСоздайте снимок киоска на базе HTML5/Electron).

Киоск работает хорошо, пока я не приступаю к печати.

После входа по ssh в Ubuntu Core и использования root-пользователя (sudo su - root) мне удалось успешно отправить текст напрямую на подключенный через USB термопринтер для печати чеков.

ls -la > /dev/usb/lp3

Установкапечать-стек-щелчокТеперь я могу передать или распечатать текстовый файл на принтере Cups, как это делал пользователь Ubuntu One для установки Ubuntu Core 18, успешно выполнив любую из приведенных ниже команд.

cat <text file> | printer-stack-snap.lp -d printer
printer-stack-snap.lp -d printer <text file>

Из самого приложения, используя дочерний процесс node.js, я могу выполнить команду оболочки, но не могу вызвать команду printing-stack-snap.lp. Получение ошибки exec: /bin/sh: 1: printing-stack-snap.lp не найден.

Вероятно, это связано с тем, как работают разрешения ядра Ubuntu. Какой смысл использовать Ubuntu Core в качестве среды киоска, если невозможно распечатать чек за продажу?

Любые рекомендации и помощь будут оценены по достоинству.

решение1

Это изменениеhttps://github.com/snapcore/snapd/pull/8329который в настоящее время находится в snapd в канале edge, должен помочь вам использовать интерфейс raw-usb в вашем snap для прямого доступа к /dev/usb/lpX ...

Связанный контент