Как уменьшить область печати в С#?

Привет,

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


person Joe-PR    schedule 30.11.2008    source источник


Ответы (3)


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

person rslite    schedule 30.11.2008

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

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

person Vilx-    schedule 30.11.2008

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

person Joel Coehoorn    schedule 30.11.2008