0

Кто-нибудь знает, получить URI принтера, используя CUPS API?Как найти URI принтера с использованием CUPS

Если нет, то кто-нибудь знает, где я могу найти список допустимых параметров, которые могут быть переданы cupsGetOption function.

Сейчас я могу найти только printer-info, printer-location, printer-make-and-model.

ответ

2

Что вы, вероятно, ищете, это «устройство-ури». Это uri для удаленного устройства i.e lpd/socket/server address. Если вы ищете локальный uri, это будет «поддерживается принтер-uri», что приведет к 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);