2009-09-17 8 views
1

J'ai besoin de savoir à chaque fois qu'un travail d'impression Mac est créé/terminé, plus quelques informations sur ce travail (ce qui a été imprimé, pages, copies, etc.). La meilleure méthode que j'ai trouvée jusqu'ici est d'utiliser kqueue() sur/var/spool/cups/puis d'analyser les fichiers C##### à mesure qu'ils sont créés, mais je me demande s'il y a un meilleur moyen.Comment puis-je savoir quand un travail d'impression CUPS a été complété plus d'informations sur ce travail?

+0

Cela pourrait obtenir plus de réponses sur serverfault.com –

Répondre

1

Je penserais à créer un filtre que vous pouvez mettre dans le pipeline CUPS qui recueille cette information et la stocke pour vous (disons dans une base de données). Ensuite, vous pouvez accéder à la base de données pour obtenir l'information en utilisant un mécanisme d'accès à la base de données standard. Fondamentalement, le filtre est juste un programme en ligne de commande qui reçoit un certain nombre de paramètres de CUPS et doit lire l'entrée sur stdin et l'écrire sur stdout. Vous pouvez trouver plus d'informations au http://www.cups.org/documentation.php/api-filter.html.

+0

J'aime beaucoup cette idée. Des idées sur comment je pourrais dire quand un travail a été annulé en utilisant cette route? –

+0

Je pense qu'il existe des méthodes pour communiquer avec le backend. Je n'ai pas réellement mis en place un filtre pour CUPS, bien que j'ai travaillé sur certains filtres LPR dans la journée. Voir la section sur la communication avec le backend. Vous devriez travailler avec un backend qui écrit l'état du périphérique sur le filtre, mais je pense que la plupart le font pour que le logiciel de comptage de pages puisse facilement s'y connecter et faire ce qu'il faut. – tvanfosson

+0

Excellent, merci beaucoup. –

1

Avez-vous déjà regardé ce que le fichier page_log vous fournit? Il y a une page de man fournissant des détails sur son format. Les versions récentes de CUPS vous permettent de configurer la quantité d'informations enregistrées dans ce fichier.

+0

Je n'avais pas, merci de le signaler. –

Questions connexes