我滴天呐我去 2023-09-06 21:44 采纳率: 30%
浏览 8

在Linux环境下获取打印机打印队列中的文件的路径

最近工作需要用到libcups,想获取被打印文件的路径,可以最终获取到的都是文件名,请问有没有朋友知道怎样获取到打印机中打印队列中文件的具体路径呢?

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2023-09-06 22:24
    关注

    引用 皆我百晓生 小程序回复内容作答:
    可以使用CUPS API中的函数来获取打印队列中文件的具体路径。具体步骤如下:

    1. 首先,需要安装libcups库。在Ubuntu中可以使用以下命令安装:
    sudo apt-get install libcups2-dev
    
    1. 在C代码中,包含以下头文件:
    #include <cups/cups.h>
    #include <cups/file.h>
    
    1. 初始化CUPS API:
    cupsInitialize(NULL, NULL, 0);
    
    1. 获取打印队列中的文件列表:
    int numJobs;
    cups_job_t *jobs = cupsGetJobs(&numJobs, NULL, 0, CUPS_WHICHJOBS_ALL);
    
    1. 遍历文件列表,获取每个文件的路径:
    for (int i = 0; i < numJobs; ++i) {
        cups_job_t *job = cupsGetJob(jobs[i].id, NULL, 0);
        const char *filePath = cupsFileWhere(job->dest);
        printf("File path: %s\n", filePath);
        cupsFreeJob(job);
    }
    
    1. 释放资源:
    cupsFreeJobs(numJobs, jobs);
    cupsTerminate();
    

    注意:上述代码仅提供了获取打印队列中文件路径的基本逻辑,实际使用时需要进行错误处理和适当的调整。

    希望以上信息对你有所帮助!

    评论

报告相同问题?

问题事件

  • 创建了问题 9月6日

悬赏问题

  • ¥15 mmo能不能做客户端怪物
  • ¥15 osm下载到arcgis出错
  • ¥15 Dell g15 每次打开eiq portal后3分钟内自动退出
  • ¥200 使用python编写程序,采用socket方式获取网页实时刷新的数据,能定时print()出来就行。
  • ¥15 matlab如何根据图片中的公式绘制e和v的曲线图
  • ¥15 我想用Python(Django)+Vue搭建一个用户登录界面,但是在运行npm run serve时报错了如何解决?
  • ¥15 QQ邮箱过期怎么恢复?
  • ¥15 登录他人的vue项目显示服务器错误
  • ¥15 (标签-android|关键词-app)
  • ¥15 comsol仿真压阻传感器