C#如何获取纸张尺寸的像素值?

3
我正在尝试打印存储在BMP图像中的表格。我事先不知道表格大小,纸张大小或打印机分辨率。当表格适合一页时,一切都很好,但是当它变得更大时,C#就会截断表格的剩余部分。
我知道我必须手动将图像分成几个较小的部分,并将每个部分打印在单独的页面上,但我在决定何处拆分时遇到了问题。我的问题是,我可以获取表格的像素尺寸,但纸张尺寸以英寸为单位,因此我不知道多少表格可以适合一个纸张。如何获得相同单位的两个值?

http://en.wikipedia.org/wiki/Dots_per_inch - Dykam
2个回答

0
var img = Image.FromFile("img.jpg");
var w = i.Width / img.HorizontalResolution; //in Inches
var h = i.Height / img.VerticalResolution;  //in Inches

0

通常使用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
...

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接