cups 如何根据任务id获取到打印份数
时间: 2023-08-18 09:08:32 浏览: 171
在 Cups 中,可以使用命令行工具`cupsfilter`来获取打印任务的信息,其中包括打印份数。具体操作步骤如下:
1. 打开命令行终端并输入以下命令以获取最近的打印任务ID:
```
lpstat -W completed -o | awk '{print $1}' | tail -n 1
```
2. 使用以下命令将任务ID替换为实际的任务ID,并使用`cupsfilter`命令获取任务信息:
```
cupsfilter -m application/vnd.cups-raw -p 1 -n 1 /var/spool/cups/cNNNN
```
其中,`NNNN`应该替换为实际任务ID。
3. 执行以上命令后,Cups会输出打印任务的详细信息,其中包括打印份数。您可以在输出中查找`number-up`字段来获取打印份数的值。例如:
```
number-up=2
```
表示该打印任务的份数为2。
相关问题
如何使用根据打印任务id 使用cups接口 获取到打印份数
您可以使用CUPS API中的cupsGetJobs函数获取打印任务的信息,其中包括打印份数。具体操作步骤如下:
1. 首先,您需要打开一个CUPS连接,可以使用cupsConnect函数进行连接。
2. 然后,您可以使用cupsGetJobs函数获取打印任务的信息。该函数需要传入一个打印机名称和一个打印任务ID。例如,如果您要获取打印机名称为“myprinter”的打印任务ID为123的打印任务的信息,可以使用以下代码:
```
cups_dest_t *dest;
cups_job_t *job;
int num_jobs;
dest = cupsGetDest("myprinter", NULL, num_dests, dests);
job = cupsGetJobs(dest->name, 123, 1, NULL, 0);
if (job != NULL) {
printf("Print job %d has %d copies\n", job->id, job->copies);
cupsFreeJob(job);
}
```
在这个例子中,cupsGetDest函数用于获取打印机名称为“myprinter”的打印机的信息,cupsGetJobs函数用于获取打印机名称为“myprinter”的打印任务ID为123的打印任务的信息,其中job->copies表示打印任务的份数。
3. 最后,您需要关闭CUPS连接,可以使用cupsDisconnect函数进行关闭。
注意,以上代码仅为示例,实际使用时需要根据具体情况进行修改。同时,如果您想获取多个打印任务的信息,可以多次调用cupsGetJobs函数。
cups 如何获取到打印纸张 打印份数
CUPS (Common Unix Printing System) 是一个开源的打印系统,它可以在 Linux、UNIX 和 macOS 等操作系统上运行。CUPS 可以通过添加打印机驱动程序和配置打印机设置来管理打印机。
要获取打印纸张和打印份数,您可以使用 CUPS 提供的命令行工具 `lpoptions` 和 `lpq`。
1. 获取打印纸张
要获取打印纸张,可以使用以下命令:
```
lpoptions -p printer-name -l | grep PageSize
```
其中,`printer-name` 是您要查询的打印机名称。该命令将列出打印机支持的所有纸张大小。
2. 获取打印份数
要获取打印份数,可以使用以下命令:
```
lpq -P printer-name -l
```
其中,`printer-name` 是您要查询的打印机名称。该命令将显示打印队列中的所有打印作业,包括打印份数和其他详细信息。
阅读全文