печать — Как правильно печатать программно дуплекс через libcups?

Это мой текущий подход, который НЕ работает, как ожидалось. Он просто печатает симплекс во всех трех случаях.

#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);
}

0

Решение

Это правильный путь. Во второй строке каждого cupsPrintFile (…) указаны неправильные параметры. Должно быть num_options, &options вместо defaultP->num_options,defaultP->options,

1

Другие решения

Других решений пока нет …