Как я узнаю, когда задания печати CUPS были завершены, а также информацию об этом задании?

Мне нужно знать каждый раз, когда задание на печать Mac создается/завершается, а также некоторую информацию об этом задании (что было напечатано, страницы, копии и т. д.).

Лучший метод, который я придумал до сих пор, — это использовать kqueue() в /var/spool/cups/, а затем анализировать файлы c##### по мере их создания, но мне интересно, есть ли лучший способ.


person Lawrence Johnston    schedule 17.09.2009    source источник
comment
Это может получить больше ответов на serverfault.com   -  person Ben S    schedule 17.09.2009


Ответы (3)


Я бы подумал о создании фильтра, который вы можете поместить в конвейер CUPS, который собирает эту информацию и сохраняет ее для вас (скажем, в базе данных). Затем вы можете получить доступ к базе данных, чтобы получить информацию, используя любой стандартный механизм доступа к базе данных. По сути, фильтр — это просто программа командной строки, которая получает ряд параметров, передаваемых ей из CUPS, и должна считывать ввод со стандартного ввода и записывать его на стандартный вывод. Дополнительную информацию можно найти на странице http://www.cups.org/documentation.php/api-filter.html.

person tvanfosson    schedule 17.09.2009
comment
Мне очень нравится эта идея. Любые идеи о том, как я могу узнать, когда работа была отменена с использованием этого маршрута? - person Lawrence Johnston; 18.09.2009
comment
Я думаю, что есть некоторые способы связи с бэкэндом. На самом деле я не реализовал фильтр для CUPS, хотя в свое время работал над некоторыми фильтрами LPR. См. раздел об общении с серверной частью. Вам придется работать с серверной частью, которая записывает состояние устройства обратно в фильтр, но я думаю, что большинство из них делают так, чтобы программное обеспечение для подсчета страниц могло легко подключиться к нему и сделать правильные вещи. - person tvanfosson; 18.09.2009

Вы когда-нибудь смотрели, что предоставляет вам файл page_log? Существует справочная страница, содержащая подробную информацию о его формате. Последние версии CUPS позволят вам настроить объем информации, регистрируемой в этом файле.

person Kurt Pfeifle    schedule 05.06.2010

Изучали ли вы схемы подписки IPP, поддерживаемые CUPS?

Они могут запускать уведомление mailto: или rss: при определенных событиях системы печати. Операции IPP, связанные с этой темой:

  • Create-Job-Subscriptions, Create-Printer-Subscriptions, Create-Resource-Subscriptions, Create-System-Subscriptions

Подробная информация об этой функции находится в Руководстве по программированию CUPS:

person Kurt Pfeifle    schedule 09.12.2018