




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