Gibt es eine Möglichkeit, den Druckauftrag mit CUPS API zu halten? Ich muss in der Sprache c und auf Ubuntu-Maschine programmieren. Ein Beispiel könnte wirklich helfen.Gibt es eine Möglichkeit, den Druckauftrag über die CUPS API zu halten?
Antwort
sehen die Shell-Befehle lprm
und cancel
Sie Shell-Befehle von c system()
oder sh -c
(How do I execute a Shell built-in command with a C function?)
http://linux.die.net/man/1/lprm-cups https://www.cups.org/documentation.php/man-cancel.html
diesehttp://linux.die.net/man/3/system
Siehe auch aufrufen kann http://www.g-loaded.eu/2005/11/10/using-a-cups-printer-from-command-line/
Sie können dies auch nutzen (Befehle können mit system()
oder sh -c
verwendet werden), ist es einfacher ist, die Shell-Befehle zu verwenden: cupsCancelJob()
#include <cups/cups.h>
cups_dest_t *dest;
int job_id;
cupsCancelJob(dest->name, job_id);
Wenn Sie den Auftrag löschen möchten (auch hört auf zu drucken) verwenden cupsCancelJob2()
ipp_status_t cupsCancelJob2 (
http_t *http,
const char *name,
int job_id,
int purge
);
Parameter
httpVerbindung zum Server oder CUPS_HTTP_DEFAULT
NameName des Druckers oder Klasse
JOB_IDJob-ID, CUPS_JOBID_CURRENT für den aktuellen Auftrag oder CUPS_JOBID_ALL für alle Jobs
Spülung1 zu spülen, 0
siehe https://www.cups.org/documentation.php/doc-2.0/api-cups.html#cupsCancelDestJob
tatsächlich ich habe zu halten, um den Job ersten und nach der Job-Monitoring, der Admin entscheiden abzubrechen, ob die job.I abzubrechen oder lösen Ich bekomme die Job-ID mit der cupsGetJobs-API, aber der Job hält nicht. Sobald der Benutzer den Befehl print gibt, geht der Drucker an. Ich hoffe, Sie wissen was ich versuche.Help me ... –
Der Befehl 'cancel' wird entfernt Aufträge aus der Druckwarteschlange, so dass sie nicht neu gestartet werden können http://askubuntu.com/questions/350334/how-do-i-clear-a-print-queue-in-ubuntu –