[cups] how to use IPP_OP_GET_PRINTER_SUPPORTED_VALUES to get supportedvalues
Fish Shu
shumenghui at gmail.com
Tue Apr 14 05:15:30 PDT 2015
I want to use request = ippNewRequest(IPP_GET_PRINTER_SUPPORTED_VALUES)to
get printer's supportedvalues like color_supported or duplex_supported,but
How to? thinks for you help. I tried using the following method,but failed.
#include <iostream>
#include <cups/cups.h>
using namespace std;
int main(int argc, char *argv) {
char uri[HTTP_MAX_URI;
std::string result;
ipp_t *request, *answer;
ipp_attribute_t *attr;
httpAssembleURIf(HTTP_URI_CODING_ALL, uri, sizeof(uri), "ipp", NULL,
"localhost", 0, "/printers/%s", argv[1]);
request = ippNewRequest(IPP_GET_PRINTER_SUPPORTED_VALUES);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_URI, "printer-uri",
NULL, uri);
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_CHARSET,
"attributes-charset", NULL,
"utf-8");
ippAddString(request, IPP_TAG_OPERATION, IPP_TAG_LANGUAGE,
"attributes-natural-language",
NULL, "en");
answer = cupsDoRequest (NULL, request, "/");
for (attr = ippFirstAttribute (answer); attr; attr = ippNextAttribute
(answer))
{
std::cout << ippGetName (attr) << std::endl;
if(ippGetString (attr, 0 ,NULL) )
{
std::cout << ippGetString (attr, 0 ,NULL) << std::endl;
}
else
{
std::cout << "NULL"<< std::endl;
}
}
//ippDelete(request);
return 0;
}
------------------------------
More information about the cups
mailing list