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

StackOverflow https://stackoverflow.com/questions/1440230

  •  10-07-2019
  •  | 
  •  

Вопрос

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

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

Это было полезно?

Решение

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

Другие советы

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

Вы заглянули в подписка на IPP схемы, поддерживаемые CUPS?

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top