cups使用中间文件从c++打印多个文件

cups printing multiple files from c++ using intermediate file

本文关键字:文件 打印 c++ 中间 cups      更新时间:2023-10-16

我正在尝试将一个非常大的图像发送到自定义打印机。由于内存限制以及图像被处理为全色,图像必须被分块成更小的部分才能发送到打印机。由于并非所有图像都具有相同的大小(或进纸/剪切媒体选项),我必须单独打印它们,每个图像都有自己的选项集

每个图像的jobId = cupsPrintFile(...)(而不是jobId = cupsPrintFiles

如果多个作业被发送到打印机,或者多个用户正在发送作业,则存在这些作业在当前作业的块之间进行的风险。

我能想到的唯一解决方案是,使用所有选项(并通过所有过滤器)将打印作业发送到文件而不是打印机,然后将创建的所有打印作业作为一个批发送到打印机,使用单个作业ID。。。

这两个步骤都可行吗?

如果我设置,我可以"打印到文件"

lpoptions -o File="/home/me/abcd.prn"

但是

1) 我如何通过c++代码做到这一点?

2) 在同一打印会话中,如何使不同的文件abcd1.prn、abcd2.prn和abcd3.prn发生这种情况?

3) 如何在同一打印会话期间通过c++代码将文件abcd1.prn、abcd2.prn和abcd3.prn发送到REAL打印机?作为一份单一的工作?

以上任何步骤都可能吗?

我的想法是创建一个后台打印到文件,然后创建另一个后台将文件打印到打印机?

我使用了2dir后端,从这里读取并连接文件-获得一个看起来像"打印到文件"的文件,或者可以在一个作业中发送到打印机。

为了发送到自定义后端,我使用了cups选项,还创建了一个贯穿代码的脚本,以安装使用2dir后端的打印机(如果没有安装的话)。