#c# #.net #printing
#c# #.net #печать
Вопрос:
Я пытаюсь использовать класс PrintDocument . Я использую событие PrintPage . Функция обработчика — это что-то вроде этого:
void PrintH(object sender, PrintPageEventArgs e)
Объектом e.Graphics по умолчанию PageUnit является GraphicsUnit.Display, который, как указано в документации, составляет «обычно» 1/100 дюйма для принтеров. Обычно означает всегда? Это немного двусмысленно. Если нет, есть ли способ определить, чему равен дисплей в дюймах или мм (предпочтительно решение .net)?
Ответ №1:
Это «обычно», потому что количество пикселей на дюйм для видеодисплея изменчиво. По умолчанию используется 96 точек на дюйм в течение очень долгого времени, что делает его близким к графическому модулю 1/100 «для принтера. Но это меняется, Vista специально упростила изменение значения по умолчанию. Страница «Облегчите чтение того, что у вас на экране» в апплете отображения с предлагаемыми переключателями для 100% (96 точек на дюйм), 125% (120 точек на дюйм) и 150% (144 точек на дюйм).
В противном случае редко бывает хорошее совпадение с фактическим разрешением монитора. Увеличение dpi просто делает все нарисованное больше. Легче читать. Однако сопоставление принтеров является точным. Когда вы рисуете линию длиной 100, вы получаете дюйм на бумаге, независимо от разрешения принтера.
Комментарии:
1. Hm «Определяет единицу измерения устройства отображения. Обычно для видеодисплеев используются пиксели , а для принтеров — 1/100 дюйма. » Обычно это относится к отображению видео (я не заметил запятую).