Полиграфический комплекс Winforms - PullRequest
1 голос
/ 28 июля 2010

У нас есть сложное приложение Winforms, каждая форма которого может содержать несколько подформ, и у нас есть требование, чтобы иметь возможность печатать данные, содержащиеся в этих формах.

В настоящее время мы используем элемент управления PrintDocument.Для каждой формы (или элемента формы), которую мы хотим напечатать, мы вызываем метод Control.DrawToBitmap(), а затем рисуем его на объекте Graphics при печати. ​​

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

Однако у нас возникают 2 проблемы.

1) Качество распечатки очень низкое, а во многих случаях едва читаемое;И

2) Распечатка выглядит совершенно по-разному в зависимости от разрешения экрана пользователя

Есть ли какие-нибудь хорошие решения для печати форм на C #?Конечно, это проблема, которая была решена раньше?Мне бы понравился метод, который не требует от меня повторной реализации внешнего интерфейса (как в Crystal Reports)

1 Ответ

2 голосов
/ 28 июля 2010

Возможно, вы захотите увеличить размер растровых изображений / линий, к которым вы рисуете.Если разрешение растрового изображения низкое, оно не будет хорошо смотреться на распечатанном листе бумаги.Мониторам повезло, если они превышают 120 пикселей / точек на дюйм, и хотя большинство принтеров могут печатать со скоростью 150 точек на дюйм, настройка принтера по умолчанию обычно составляет 300/600 точек на дюйм.Я не знаю, влияют ли измерения PageUnit на вывод при использовании PrintDocument, но я использую GraphicsUnit.Point при рисовании на поверхности.(Конечно, не делайте растровое изображение СЛИШКОМ большим, иначе скорость печати будет уменьшаться или падать из-за объема данных, отправляемых на принтер).

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