如何使用CUPS查找打印机URI

时间:2013-07-15 19:33:56

标签: objective-c c operating-system printers systems-programming

任何人都知道使用CUPS API获取打印机URI?

如果没有,是否有人知道我在哪里可以找到可以传递给cupsGetOption function的允许选项列表。

现在我只能找到printer-info, printer-location, printer-make-and-model

1 个答案:

答案 0 :(得分:2)

你可能正在寻找的是“设备 - uri”。这是远程设备的uri,即lpd / socket / server地址。如果你正在寻找本地uri,它将是“printer-uri-supported”,这将导致ipp:// localhost:631 / printers / printername。这是如何获得远程uri ...

#import <cups/cups.h>

const char * printer = "name_of_printer";
int num_dests;
cups_dest_t *dest,
            *dests;

const char *value;

num_dests = cupsGetDests(&dests);
dest = cupsGetDest(printer, NULL, num_dests, dests);
if( dest == NULL){
    return 0;
};
value = NULL;

if (dest->instance == NULL)
{
    value = cupsGetOption("device-uri", dest->num_options, dest->options);
}

cupsFreeDests(num_dests, dests);
printf("uri - %s",value);