CUPS-PDF经验
作者:林宏声
本文档主要记录了笔者在编译调试cups-pdf的方法,以及遇到的困难和解决方法。
CUPS介绍
直接编译cups-pdf
cups-pdf编译可以参考[原]CUPS-PDF编译安装
用QT 对cups-pdf编译调试
笔者下载的版本是3.0.1。
用QT 新建一个纯C工程(比如Cups4CloudPrinter)
将/src目录下的cups-pdf.h 和cups-pdf.c拷贝到工程中
如图:
编辑*.pro文件添加两行内容:
INCLUDEPATH +=/usr/include
LIBS+=/usr/lib64/libcups.so
+=/usr/include
LIBS+=/usr/lib64/libcups.so
如图:
之所以加这两行,是因为cups-pdf依赖于cups库和头文件。
如果引用了头文件库后,提示没有cups.h,可以尝试yum install cups-pdf。
构建项目,应该就可以编译成功。
此时会生成Cups4CloudPrinter,该执行程序等价于cups-pdf。
按照[原]CUPS-PDF编译安装所述,将Cups4CloudPrinter添加到系统中,如图:
要注意的是,要想获取到打印份数等信息,不能用原码中默认的PPD文件。默认的PPD文件认为打印机是不能做多份打印的,因此如果打印一页文档时选择打印5份,则生成的pdf会有5页相同的文档。
遇到的困难
因为配置输出目录为桌面,导致无输出pdf文件
在/etc/cups/cups-pdf.conf 文件中,如果out设置为{DESKTOP},则cups-pdf会因为无法创建desktop目录,导致ps流无法转换成pdf文件
因为cups-pdf意外退出,导致打印队列卡顿
如果cups-pdf意外退出,会导致打印队列卡顿。这个时候要查看日志(在/var/log/cups/中)来解决
因为cups-pdf权限太高导致打印失败
cups-pdf的权限不能太高,否则会无法打印。调用命令chmod 700 cups-pdf即可(cups-pdf在/usr/lib/cups/backend中)