Есть ли способ удержать задание на печать с помощью CUPS API? мне нужно кодировать на языке c и на машине с Ubuntu. Пример может действительно помочь.
Есть ли способ удержать задание на печать с помощью CUPS API?
Ответы (1)
см. команды оболочки lprm
и cancel
Вы можете вызывать команды оболочки из c, используя system()
или sh -c
(Как мне выполнить встроенную команду Shell с функцией C?)
http://linux.die.net/man/1/lprm-cups https://www.cups.org/documentation.php/man-cancel.html
http://linux.die.net/man/3/system
Также см. это http://www.g-loaded.eu/2005/11/10/using-a-cups-printer-from-command-line/ (команды можно использовать с system()
или sh -c
)
Вы также можете использовать это, проще использовать команды оболочки: cupsCancelJob()
#include <cups/cups.h>
cups_dest_t *dest;
int job_id;
cupsCancelJob(dest->name, job_id);
Если вы хотите удалить задание (также остановить печать), используйте cupsCancelJob2()
ipp_status_t cupsCancelJob2 (
http_t *http,
const char *name,
int job_id,
int purge
);
Параметры
http Подключение к серверу или CUPS_HTTP_DEFAULT
имя Имя принтера или класса
job_id Идентификатор задания, CUPS_JOBID_CURRENT для текущего задания или CUPS_JOBID_ALL для всех заданий
очистить 1 для очистки, 0 для отмены
см. https://www.cups.org/documentation.php/doc-2.0/api-cups.html#cupsCancelDestJob
cancel
удаляет задания из очереди печати, чтобы их нельзя было перезапустить askubuntu.com/questions/350334/
- person ralf htp; 14.04.2016