C #, как получить размер бумаги в пикселях? - PullRequest
2 голосов
/ 16 мая 2011

Я пытаюсь напечатать таблицу, хранящуюся в изображении BMP. Я не знаю заранее размер таблицы, размер бумаги или разрешение принтера. Хотя таблица умещается на 1 странице, все в порядке, но когда она становится больше листа бумаги, c # просто обрезает напоминание о таблице.

Я понимаю, что мне нужно разделить изображение на несколько меньших вручную и напечатать каждое на отдельной странице, но у меня возникают проблемы с выбором места для разделения. Моя проблема в том, что я могу получить размеры таблицы в пикселях, но размер листа в дюймах, поэтому я понятия не имею, сколько таблицы может поместиться на одном листе. Как я могу получить оба значения в одинаковых единицах?

Ответы [ 2 ]

0 голосов
/ 29 января 2019

Обычно это делается с помощью класса System.Drawing.Printing.PrintPageEventArgs.

Поскольку вы можете выбирать разные принтеры с разным разрешением DPI, размер пикселя будет различаться. Поэтому это свойство лучше всего читать через события.

Вам нужно начать печать следующим образом:

PrintDocument _printDocument = new PrintDocument();
_printDocument.PrintPage += new PrintPageEventHandler(_printDocument_PrintPage);
...
void _printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) {
int pageWidth = e.PageBounds.Width
...
0 голосов
/ 16 мая 2011
var img = Image.FromFile("img.jpg");
var w = i.Width / img.HorizontalResolution; //in Inches
var h = i.Height / img.VerticalResolution;  //in Inches
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...