通过 libcups 以编程方式双面打印的正确方法是什么?

What is the correct way to print programmatically duplex via libcups?

本文关键字:方法 是什么 打印 libcups 编程 方式双 通过      更新时间:2023-10-16

这是我目前的方法,它没有按预期工作。它只是在所有三种情况下打印单面。

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

正确的方法。每个杯子打印文件(...)的第二行都有错误的参数。应该num_options, &options而不是defaultP->num_options,defaultP->options