C/S模式 Winform 打印模块扩展
在之前工作中一直对打印模块是简单的拖PrintDocument等控件实现打印操作的,但是后来根据需求的变化,觉得简单如上文发布的打印比较死板,然而在此寻找到新的方法来分享下!
在工作中比如有同一页面操作不同打印机直接打印的方法(不显示系统自动的打印设置页面),并且在这个例子中的时间是自己定义的!
PrintDocument printDocument ; public PrintMenu() { InitializeComponent(); } private void PrintMenu_Load(object sender, EventArgs e) { printDocument = new PrintDocument(); printDocument.PrintPage += new PrintPageEventHandler(printDocument_PrintPage); // } private void printDocument_PrintPage(object sender,PrintPageEventArgs e) { Bitmap _NewBitmap = new Bitmap(groupBox1.Width, groupBox1.Height); groupBox1.DrawToBitmap(_NewBitmap, new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height)); e.Graphics.DrawImage(_NewBitmap, 0, 0, _NewBitmap.Width, _NewBitmap.Height); } private void button1_Click(object sender, EventArgs e) { //指定打印机打印 //Canon iR3570/iR4570 PCL6 printDocument.PrinterSettings.PrinterName = "ZDesigner 888-TT"; //打印预览 PrintPreviewDialog printPreviewDialog1 = new PrintPreviewDialog(); printPreviewDialog1.Document = printDocument; printPreviewDialog1.ShowDialog(); //打印 printDocument.Print(); }
定义一个时间使用系统的委托,放在Load中触发printDocument的PrintPage事件,然后在printDocument.PrinterSettings.PrinterName中指定打印机名字。