печать нескольких файлов из c ++ с использованием промежуточного файла

Я пытаюсь отправить очень большое изображение на пользовательский принтер. Из-за ограничений памяти и того факта, что изображение обрабатывается как полноцветное, изображение необходимо разделить на части меньшего размера для отправки на принтер. Поскольку не все изображения будут иметь одинаковый размер (или параметры feed / cutMedia), я должен распечатать их отдельно, каждое из которых имеет свой собственный набор параметров

jobId = cupsPrintFile(...) для каждого изображения (вместо jobId = cupsPrintFiles)

Если на принтер отправляется несколько заданий или отправляются задания несколькими пользователями, существует риск того, что эти задания будут проходить между частями текущего задания.

Единственное решение, которое я могу придумать, — это отправить задания на печать в файл вместо принтера, используя все параметры (и пройдя через все фильтры), затем взять все созданные задания на печать и отправить их в виде пакета в принтер, с одним заданием …

Возможны ли оба этих шага?

Я могу «распечатать в файл», если я установил

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

….но…

1) Как мне сделать это с помощью кода C ++?

2) Как сделать так, чтобы это происходило с разными файлами abcd1.prn, abcd2.prn, abcd3.prn во время одного сеанса печати?

3) Как я могу отправить файлы abcd1.prn, abcd2.prn, abcd3.prn на принтер REAL во время той же сессии печати через код c ++? Как одиночная работа?

Возможен ли какой-либо из вышеперечисленных шагов?

Моя мысль — создать бэкэнд для печати в файл, а затем еще один бэкэнд для передачи файлов на принтер?

0

Решение

Я использовал 2dir backend, из Вот а затем прочитайте и объедините файлы, получив либо файл, который будет выглядеть как «печать в файл», либо его можно отправить на принтер за одно задание.

Для отправки в пользовательский бэкэнд я использовал опцию cups, а также создал скрипт, запускающий код для установки принтера, который использовал бэкэнд 2dir, если он не был установлен.

0

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