Наша компания разрабатывает приложение (WPF, ориентированное на .NET 3.5) с компонентами построения диаграмм WPF от MindFusion. По всей видимости, печать и сохранение документов XPS приводит к различным ошибкам в разных системах.
Я свел проблему к одному образцу XPS-документа, созданного из нашего приложения. Сначала дадим обзор соответствующих систем и разберем проблемы при сохранении документа xps и печати визуальной диаграммы с использованием нового пути печати WPF в следующем списке:
Примечание. Все три системы имеют Windows XP SP3 с установленным .NET 3.5 Framework SP1.
Использование XpsDocumentWriter для написания документа XPS с помощью Paginator:
ПК 1 - XPS Viewer (работающий с IE 7.0) не работает (даже после переустановки .Net 3.5). XPS Viewer из Essential Pack открывает документ, но вид полностью размыт. Но, как видите, наше приложение справа от снимка экрана использует DocumentViewer для проверки этой проблемы, который работает правильно. Печать из поврежденного средства просмотра XPS дает тот же результат, что и на экране, в то время как печать из встроенной функции печати в DocumentViewer (без вмешательства нашего приложения) дает размытый результат, который немного более читабелен, но все же неприемлем.
ПК 2 - IE XPS Viewer работает правильно. Вывод на печать несоответствующий. Иногда графика (Фигуры) не завершена, или печатающее устройство сообщает о нехватке памяти (с тем же документом).
ПК 3 - IE XPS Viewer работает правильно, но запуск задания на печать всегда приводит к этому исключение в самом IE. Примечание. Все ранее упомянутые проблемы были протестированы с помощью документа XPS (уже упомянутого выше), созданный нашим приложением.
Создание задания на печать с помощью PrintDialog.PrintDocument и Paginator:
Печать из нашего приложения дает единообразный вывод для всей системы: чем больше документ (если говорить о размере страницы), тем более размытым он становится. К сожалению, многие возможные причины уже упущены. код для печати документа довольно прост.
• Вместо использования нашего собственного Paginator я заменил последний другой частью Paginator. компонентов построения диаграмм MindFusion WPF, которые мы используем. Я добился того же результата. (Это утверждение также верно для документов XPSDocuments, сохраненных в виде файла).
• Я использовал последнюю доступную версию драйвера печати.
• Изменения в разрешении PrintTicket, похоже, никоим образом не влияют на вывод.
• Использование другого визуала вместо диаграммы (например, самого окна нашего приложения) не влияет на вывод
Из-за этих различных проблем кажется, что также возможны несколько причин. Предыдущие исключения заставили меня предположить, что некоторые важные настройки отсутствуют в PrintTicket , или что-то ужасно неправильное происходит со сценами преобразования XPS в GDI. Помимо этих предположений, у меня заканчиваются идеи.
Примечание. Все устройства печати имеют драйверы, отличные от XPS. HP Designjet 500, HP 2100
И последнее, но не менее важное: я сериализовал тот же PrintTicket, используемый для файла документа XPS и задание на печать. Буду признателен, если у кого-нибудь возникнут подобные проблемы. Любые предложения приветствуются.