cups 如何获取到打印纸张 打印份数
时间: 2024-05-16 19:17:08 浏览: 12
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` 是您要查询的打印机名称。该命令将显示打印队列中的所有打印作业,包括打印份数和其他详细信息。
相关问题
如何通过jobid 使用cups接口获取到打印份数
通过CUPS接口获取打印份数可以使用cupsGetJobs函数。该函数可以通过job_id获取打印任务的状态,其中包括打印份数。以下是一个示例代码:
```c
#include <cups/cups.h>
#include <stdio.h>
int main(int argc, char *argv[]) {
int job_id = 1234; // 假设要获取的打印任务的job_id为1234
cups_job_t *job;
int num_copies = -1;
if ((job = cupsGetJob(NULL, job_id, NULL)) != NULL) {
num_copies = cupsGetInteger(job->attrs, "job-impressions-completed", -1);
cupsFreeJob(job);
} else {
printf("Error: Unable to get job.\n");
}
printf("Number of copies: %d\n", num_copies);
return 0;
}
```
在上述示例代码中,我们首先通过cupsGetJob函数获取到job_id对应的打印任务的状态,然后使用cupsGetInteger函数获取打印份数,最后输出打印份数。如果获取失败,则输出错误信息。需要注意的是,如果打印任务还没有完成,则获取到的打印份数可能不是最终的打印份数。
cups 如何根据任务id获取到打印份数
在 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。