Привет,
У меня проблемы (при попытке печати с С# на определенные принтеры, у которых нет больших областей печати. Есть ли способ уменьшить область печати (например, Adobe Acrobat)? Спасибо!
Привет,
У меня проблемы (при попытке печати с С# на определенные принтеры, у которых нет больших областей печати. Есть ли способ уменьшить область печати (например, Adobe Acrobat)? Спасибо!
Вы можете определить размер вашего изображения, затем размер области печати (из настроек принтера и полей - как указано в другом посте), а затем рассчитать коэффициент сжатия по горизонтали или вертикали (в зависимости от того, что больше, поэтому изображение не обрезанный). Используйте это соотношение в преобразовании масштаба в графическом контексте принтера, прежде чем рисовать там содержимое страницы.
Что вы используете для печати? Скорее всего, вам придется запросить у принтера его поля, а затем настроить код рисования для печати внутри области печати.
Другими словами - вам придется делать это "вручную".
В .Net вы должны использовать классы в пространстве имен System.Drawing.Printing
для печати. При этом вы вызываете метод Print()
из объекта PrintDocument
. Это приведет к возникновению события PrintPage
PrintDocument
. Свойство Graphics
аргумента PrintPageEventArg
этого события имеет свойство ClipBounds
. Используйте это свойство для проверки области печати.