Получение доступных лотков для принтеров с помощью PyCups

Я пытаюсь получить все лотки, доступные для принтера, но не могу найти способ получить список доступных лотков.

Вот как я получаю принтеры:

>>> import cups
>>> conn = cups.Connection ()
>>> printers = conn.getPrinters ()
>>> for printer in printers:
...     print printer, printers[printer]["device-uri"]
Brother_MFC_1910W_series
Photosmart_6520_series

Работает нормально, но нет информации о лотках в printers. Любая помощь или ссылка очень ценятся, спасибо.

Для протокола, я работаю над OS X.


person Sid    schedule 09.01.2017    source источник


Ответы (2)


Итак, после нескольких попыток, вот что я сделал, чтобы получить лотки.

Для каждого принтера, который я нашел, я просматриваю /etc/cups/ppd/ файл printer_name.ppd, в котором я могу найти все детали, которые мне нужны, включая лотки.

Это также полезно, так как я могу получить лотки на каждом языке, поддерживаемом в файле PPD.

person Sid    schedule 11.01.2017

Следуя принятому ответу:

Поскольку для чтения файлов PPD требуются права суперпользователя, простой способ получить к ним доступ с помощью PyCUPS выглядит следующим образом:

>>> import cups
>>> conn = cups.Connection()
>>> ppd = conn.getPPD('Brother_MFC_1910W_series')  # Your desired printer's name
>>> print(ppd)  # returns a filename of a temporary file with the PPD
'/tmp/576b35f2620f5'
>>> ppd_file = open(ppd)
>>> print(ppd_file.read())
person illright    schedule 31.07.2020