It is the correct way. There are wrong parameters in the second line of each cupsPrintFile(...). Should be num_options, &options
instead of defaultP->num_options,defaultP->options
.
What is the correct way to print programmatically duplex via libcups?
Question
This is my current approach, which does NOT work as expected. It just prints simplex in all three cases.
#include <cups/cups.h>
int main(int argc, char *argv[])
{
cupsSetUser("myuser");
cups_dest_t *defaultP = cupsGetDest (NULL, NULL,num_dests,dests);
int jobid;
int num_options = 0;
cups_option_t *options=NULL;
//SIMPLEX
num_options = cupsAddOption ("Duplex", "None",num_options,&options);
jobid = cupsPrintFile(defaultP->name,"/home/myuser/work/TEST.ps","Test Print SIMPLEX",
defaultP->num_options,defaultP->options);
num_options = cupsRemoveOption("Duplex",num_options,&options);
//DUPLEX Long Edge
num_options = cupsAddOption ("Duplex", "DuplexNoTumble",num_options,&options);
jobid = cupsPrintFile(defaultP->name,"/home/myuser/work/TEST.ps","Test Print DUPLEX Long Edge ",
defaultP->num_options,defaultP->options);
num_options = cupsRemoveOption("Duplex",num_options,&options);
//DUPLEX Short Edge
num_options = cupsAddOption ("Duplex", "DuplexTumble",num_options,&options);
jobid = cupsPrintFile(defaultP->name,"/home/myuser/work/TEST.ps","Test Print DUPLEX Short Edge ",
defaultP->num_options,defaultP->options);
num_options = cupsRemoveOption("Duplex",num_options,&options);
}
Solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow