Печать в порт 9100 с использованием PJL и Python - PullRequest
0 голосов
/ 15 апреля 2020

Я считаю, что этот код должен работать для печати PDF непосредственно на большинство принтеров через порт 9100.
Этот источник и этот , среди прочих, похоже, согласен с деталями.
Мой принтер просыпается и, кажется, на мгновение "наматывает работу", но затем снова просто замолкает.
Код сокета, конечно, очень сырой, но все же ..

Может быть, это только мой конкретный принтер *.
Благодарен, если кто-то может проверить это или указать на какие-либо ошибки или улучшения.

import socket

job = [
    b'\x1b%-12345X@PJL JOB NAME = "My Print Job Name"\r\n',
    b'@PJL ENTER LANGUAGE = PDF\r\n',
    open('mydoc.pdf', 'rb').read(),
    b'\x1b%-12345X @PJL EOF\r\n',
    b'\x1b%-12345X'
]

soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.connect(('myprinter.local', 9100))
for b in job:
    # print(b)
    soc.send(b)
soc.close()

* A Brother MF C -J4620DW

...