[英]How can i set PrintPriviewDialog papersize to a5 in c# codebehind?
我有一个Windows窗体应用程序,有一个包含面板的简单Windows窗体。 我已经将面板大小设置为:560,579像素,并且我已经通过以下方式设置了打印文档的大小:
System.Drawing.Printing.PaperSize a = new System.Drawing.Printing.PaperSize("A5 (148 x 210 mm)", 584, 827);
printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = a;
现在,我希望printpreviewdialoge页面的大小为a5或至少与我的打印文档相同,并适合它,我该如何实现?
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Bitmap b = new Bitmap(pnlPrint.Width, pnlPrint.Height);
pnlPrint.DrawToBitmap(b, new System.Drawing.Rectangle(0, 0, pnlPrint.Width, pnlPrint.Height));
e.Graphics.DrawImage(b,0,0);
}
private void Print()
{
PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog();
var paperSize = printDocument1.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "A5");
printDocument1.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
}
您可以从PrintDocument
对象的PrinterSettings
属性获取A5 PaperSize
对象。 它具有PaperSizes
属性,该属性保存所选打印机的所有纸张尺寸。 您可以使用LINQ查找所需的那个。 例如:
var paperSize = printDoc.PrinterSettings.PaperSizes.Cast<PaperSize>().FirstOrDefault(e => e.PaperName == "A5");
printDoc.PrinterSettings.DefaultPageSettings.PaperSize = paperSize;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.