PrintPreviewDialog dialog = new PrintPreviewDialog(); dialog.Document = print_express; //print_express是PrintDocument控件 print_express.DefaultPageSettings.PrinterSettings.PrinterName = printName; //防闪退 start PrintController printController = new StandardPrintController(); print_express.PrintController = printController; //防闪退 end //print_express.Print(); dialog.ShowDialog();
private void print_express_PrintPage(object sender, PrintPageEventArgs e) { Image img = Method.Base64ToImage(curPrintExpress); //填充至整页 e.Graphics.DrawImage(img,e.PageBounds); //关键是e.PageBounds页面大小 }
注意自定义纸张时的单位换算:
print_express.DefaultPageSettings.PaperSize = new PaperSize("dyappe express", (int)(100 / 25.4 * 100), (int)(150 / 25.4 * 100));
其中 100 和 150单位为毫米(mm) , 比如我这里要打印的顺丰快递面单是 10*15cm 则这里需要传入 100*150mm