我需要查找打印机是否具有给定型号。
我找到了QPrinterInfo - 它有一个属性printerName
不幸的是,在Linux中添加打印机时,用户可以根据需要编写名称,或者在安装后更改它,因此名称不可靠
我读到Qt 5.x有一个“printerModel”,那会很棒......但我必须使用4.7-8
我试图从/etc/cups/printers.conf
中读取QString fileName = "/etc/cups/printers.conf";
QFile printerConf(fileName);
if (printerConf.open(QIODevice::ReadOnly | QIODevice::Text))
{
// i wish but it never happens
}
但由于权限我无法阅读。
Qt 4.8,Ubuntu
答案 0 :(得分:0)
cups API包含所需的所有信息:
http://www.cups.org/documentation.php/api-cups.html
#include <cups/cups.h>
cups_dest_t *dests;
int num_dests = cupsGetDests(&dests);
cups_dest_t *dest;
int i;
const char *value;
for (i = num_dests, dest = dests; i > 0; i --, dest ++)
if (dest->instance == NULL)
{
value = cupsGetOption("printer-make-and-model", dest->num_options, dest->options);
printf("%s (%s)\n", dest->name, value ? value : "unknown");
}
cupsFreeDests(num_dests, dests);