Получите список установленных принтеров

Много аккуратных дополнительных свойств здесь!

Метод KISS:

date >>filename; cat >>filename
8
08.12.2012, 18:58
3 ответа

CUPS (частично) GPL-лицензируется, таким образом, Вы могли просто захватить источник lpstat(1) и создайте свой собственный мало (GPL-лицензированный) give-my-list-of-printers-program, который никогда не будет изменять способ, которым он производит данные.

(1) Это находится в cups-XX/cups/systemv/lpstat.c, Я просто не понимаю числа версий там.

1
27.01.2020, 20:13
  • 1
    Это - хорошее решение, но к сожалению "сценарий" является на самом деле апплетом Java, я не могу изменить целевую систему или установить новый материал на нем. Это связано с этим вопросом: stackoverflow.com/questions/13743738 / … И я думал, что использование lpr вместо этого было хорошей идеей –  Enoon 09.12.2012, 22:15
  • 2
    Хм, существует CUPS4J, который мог бы или не мог бы быть опцией... это может "получить объекты принтеров от сервера CUPS, который может использоваться, чтобы распечатать и контролировать задания" –  sr_ 10.12.2012, 10:12
  • 3
    Это кажется интересным решением, Спасибо! спасибо –  Enoon 10.12.2012, 14:23

Я также нуждаюсь в списке принтеров и имел то же беспокойство. После вышеупомянутого предложения я проверил источник lpstat.c. Я ожидал, что это будет suid, таким образом, это могло считать "/etc/cups/printers.conf". Я теперь понимаю, что это не делает этого.

Вместо этого это отправляет запрос POST HTTP к localhost:631, куда cupsd работает. Запрос имеет Тип контента формы: application/ipp и вещи такие требуемые авторами от-информации согласно-просьбе-атрибуты. Причина не быть более конкретным состоит в том, что это использует нестандартное кодирование (см.: http://en.wikipedia.org/wiki/Internet_Printing_Protocol)..., таким образом, я подозреваю на самом деле парсинг вывода lpstat-a, на самом деле инструмент для очистки.

3
27.01.2020, 20:13

С момента первоначального вопроса прошло шесть лет, я использую Cups 2.2.7. И еще 'lpstat -a' возвращает имя принтера в первом слове. Поэтому я думаю, что можно с уверенностью предположить, что это и впредь будет правильным способом получения списка установленных принтеров.

3
30.06.2020, 23:02

Теги

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