Печать XPS с PrintTicket, OutputColor PagesPerSheet не работает - PullRequest
2 голосов
/ 19 апреля 2011

У меня есть файл .xps, созданный на встроенном принтере Microsoft xps Writer, я хочу напечатать его на реальном принтере, но с измененными атрибутами, такими как: дуплекс, оттенки серого, n-up и т. Д.

Я следовал примерам из MSDN и могу нормально распечатать .xps, но проблема в том, что я могу установить только несколько атрибутов задания. Установив PrintTicket с PrintQueue, задание печатается правильно с измененными настройками копирования и дуплекса, но не преобразуется в оттенки серого и не учитывает никакие настройки n-up.

Кажется, я не одинок, из этой формы , с помощью обработчика событий WritingPrintTicketRequired, XPS-файлов PrintTicket был успешно изменен с настройками оттенков серого, n-up, но с помощью PrintQueue.AddJob () call не будет печатать их в оттенках серого или n-up.

Однако, если я использую PrintDialog и вручную выберу атрибуты, он будет печататься как положено. Если я попытаюсь установить свойства PrintQueue и PrintTicket в PrintDialog, он не будет учитывать некоторые атрибуты.

Моя цель - программно распечатать файл xps с атрибутами. Вопрос в том, как заставить PrintQueue полностью соблюдать PrintTicket?

К вашему сведению: файл xps был создан как цветной, и я могу видеть цветные изображения в пакете .xps.

РЕДАКТИРОВАТЬ: оказывается, драйвер принтера почему-то не учитывает настройки печати, даже возможности принтера показывают, что он поддерживает монохромный режим, что очень заметно при переходе на другой драйвер. Однако задание серой шкалы в билете печати отличается от выбора серой шкалы в пользовательском интерфейсе диалога печати: в градациях серого в билете печати будет выводиться монохромное изображение, а в файле спула оно будет отображаться как цветное, но само изображение преобразуется. В то время как последний будет генерировать более реалистичное изображение в градациях серого.

...