Как сжать до области печати в C #? - PullRequest
0 голосов
/ 30 ноября 2008

Привет,

У меня проблемы (при попытке печати из c # на некоторых принтерах, которые не имеют больших областей печати. ​​Есть ли способ сжатия до области печати (как это делает Adobe Acrobat)? Спасибо!

Ответы [ 3 ]

1 голос
/ 30 ноября 2008

Вы можете определить размер изображения, затем размер области печати (из настроек принтера и полей - как упомянуто в другом посте), а затем рассчитать коэффициент сжатия по горизонтали или вертикали (в зависимости от того, какое значение больше, поэтому изображение не обрезается). Используйте это соотношение в масштабном преобразовании в графическом контексте принтера, прежде чем рисовать там содержимое страницы.

0 голосов
/ 01 декабря 2008

В .Net вы должны использовать классы в пространстве имен System.Drawing.Printing для печати. Когда вы делаете это, вы вызываете метод Print() из объекта PrintDocument. Это вызовет событие PrintDocument PrintPage. Свойство Graphics аргумента PrintPageEventArg этого события имеет свойство ClipBounds. Используйте это свойство для проверки области печати. ​​

0 голосов
/ 30 ноября 2008

Что вы используете для печати? Скорее всего, вам придется запросить принтер о его полях, а затем настроить код чертежа для печати внутри области печати. ​​

Другими словами - вам придется делать это "вручную".

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