【发布时间】:2016-08-05 12:17:29
【问题描述】:
有没有办法使用 CUPS API 来保持打印作业?我必须用 c 语言和 ubuntu 机器编写代码。一个例子真的很有帮助。
【问题讨论】:
有没有办法使用 CUPS API 来保持打印作业?我必须用 c 语言和 ubuntu 机器编写代码。一个例子真的很有帮助。
【问题讨论】:
查看 shell 命令 lprm 和 cancel
您可以使用 system() 或 sh -c (How do I execute a Shell built-in command with a C function?) 从 c 调用 shell 命令
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一起使用)
你也可以用这个,用shell命令更方便:
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 当前工作的工作 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/…