Как можно распечатать несколько страниц в разных лотках в рамках одного задания на печать с использованием Java? - PullRequest
1 голос
/ 28 октября 2011

при печати на Java можно выбрать лоток для носителя (в PrintRequestAttributeSet).Затем можно передать этот параметр в задание на печать и распечатать документ в заданном лотке.

Теперь у меня вопрос: можно ли как-то указать, что первая страница печатается в один лоток, а вторая - в другой лоток? в рамках одного задания на печать ?

Я не хочу создавать два отдельных задания на печать, потому что мой сценарий использования - это массовая печать, скажем, 1000 документов.У каждого документа есть несколько страниц, идущих в лоток 1, и несколько страниц, идущих в лоток 2. Если мне придется создавать новое задание на печать на каждом переключателе лотков, я получу несколько тысяч отдельных заданий на печать, и я боюсь всеговиды переполнения принтера и сбоев системы.Таким образом, я предпочитаю как-то утащить эти «переключатели лотка» в одно задание на печать.

Я почти уверен, что это можно как-то сделать, но пока не получилось.Мысль о создании этих тысяч PrinterJobs, но их печать на StreamPrintService (вместо действительной службы печати), таким образом, захватывая переключатели лотка вместе с фактическими данными печати.Затем я планировал объединить результаты этих «виртуальных» отпечатков и отправить их на настоящий принтер в одном реальном задании на печать.

Однако в Java 1.6, похоже, естьтолько один StreamPrintService, который может выводить только postscript.Итак: есть ли способ получить необработанный вывод native из собственного драйвера принтера (с использованием Java)?Вам кажется целесообразным объединить этот вывод и отправить его на принтер, чтобы решить мою проблему?

Я был бы рад, также о комментариях, касающихся только части проблемы ..

1 Ответ

1 голос
/ 31 октября 2011

Путем добавления атрибута «Назначение» в набор атрибутов печати, печать может быть перенаправлена ​​в локальный файл. Этот файл содержит задание на печать на любом языке, на котором драйвер принтера общается. В моем случае я получил файлы postscript.

Я создал два файла postscript, каждый из которых печатал из другого лотка, а затем отправил их конкатенацию на принтер. И это сработало :-)! Я переключил принтер, чтобы убедиться, что есть только одна задание на печать, и я написал несколько цифр на бумаге в этих лотках. Так что, думаю, я могу быть уверен, что это не только желаемое за действительное; -).

Однако, я думаю, я не буду углубляться в эту тему, потому что

  1. Я не гуру печати, и у меня есть сомнения, что этот подход работает в каждом случае.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...