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