2014-09-26 104 views
0

我需要查找打印机是否有给定的型号。Qt - 查找打印机

我发现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

杯子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);