2016-04-14 23 views

Antwort

0

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?)

mit

http://linux.die.net/man/1/lprm-cups https://www.cups.org/documentation.php/man-cancel.html

diese

http://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

+0

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 ... –

+0

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 –