Я пытаюсь распечатать простой текстовый файл к принтеру маркировки USB, подключенному к моей системе Ubuntu 14.04.
Текстовый файл прост:
echo "Test Passed" > file.txt
Я нашел свой принтер следующим образом:
lpinfo -v
...
direct usb://Brother/QL-570?serial-=J2Z376442
...
Я создал принтер следующим образом:
lpadmin -p Label -E -v usb://Brother/QL-570?serial-=J2Z376442
Теперь, когда я пытаюсь распечатать:
lp -d Label file.txt
Я добираюсь:
request id is Label-8 (1 file(s))
При обещании / ожидаемый ответ, но ничто не выходит на принтере маркировки (да, он включается / онлайн).
Кто-либо встречается, такая ситуация / имеют какие-либо мысли?
Я бился над этой проблемой более двух дней. Для меня ответ был довольно прост. Чтобы принтер что-либо делал, необходимо установить версию cups для i386.
Вот мой dockerfile:
FROM ubuntu:latest
LABEL Pellet Norman
# Unrelated to CUPS. Just need to set the timezone to avoid the interfactive mode
ENV TZ=Europe/Zurich
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# Cups installation
RUN mkdir -p /var/spool/lpd
RUN dpkg --add-architecture i386
RUN apt-get update &&\
apt-get install -y cups cups-bsd &&\
apt-get install -y libcups2:i386
# Some other stuff for me
RUN apt-get install -y apt-utils &&\
apt-get install -y nano
# Copy the drivers
COPY pt9800pcncupswrapper-1.0.1-1.i386.deb /root/pt9800pcncupswrapper-1.0.1-1.i386.deb
COPY pt9800pcnlpr-1.0.1-1.i386.deb /root/pt9800pcnlpr-1.0.1-1.i386.deb
COPY ptp950cupswrapper-1.0.0-0.i386.deb /root/ptp950cupswrapper-1.0.0-0.i386.deb
# Install the drivers
RUN dpkg -i /root/pt9800pcnlpr-1.0.1-1.i386.deb
RUN dpkg -i /root/pt9800pcncupswrapper-1.0.1-1.i386.deb
# Copy the access control, etc, that was defined from the WSL implementation
COPY cupsd.conf /etc/cups/
# Add root to the lp group. But ok that's not really necessary
RUN usermod -a -G lp root
# Here's I'm copying the printer ppd files that I will use later to overwrite the config given by Brother
COPY printers /home/docker/printers
# A test document to print
COPY document.pdf /home/docker/document.pdf
# The setup script
COPY setup.sh /home/docker/setup.sh
#ADD cupsd.conf /etc/cups/cupsd.conf
ENTRYPOINT /home/docker/setup.sh && /bin/bash
И скрипт запуска:
#!/bin/sh
service cups restart
lpadmin -p PT-9800PCN-2N25 -h 127.0.0.1:631 -E -v socket://IP_ADDRESS -P /usr/share/cups/model/Brother/brother_pt9800pcn_printer_en.ppd
cp -R /home/docker/printers/* /etc/cups/ppd
lpr -H localhost:631 -P PT-9800PCN-2N25 -o media=MY_CUSTOM_SIZE /home/docker/document.pdf
И как только docker запускается, document.pdf печатается!
В основном я натыкался на отсутствующие двоичные файлы libcups2:i386.