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

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

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 на НАСТОЯЩИЙ принтер во время того же сеанса печати с помощью кода C ++? Как одиночная работа?

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

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


person Thalia    schedule 15.10.2014    source источник


Ответы (1)


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

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

person Thalia    schedule 18.12.2014