学习c# winform 打印 参照了网络上诸多资源
效果示意:
操作步骤:
1、新建winform项目及创建窗体
2、拖取 打印 相关控件
PageSetupDialog 、 PrintDialog 、 PrintDocument 、PrintPreviewDialog
3、设置上述控件的Document属性为相应的PrintDocument
4、设置按钮等控件 及 添加相应按钮事件
5、示意代码如下
按 Ctrl+C 复制代码
按 Ctrl+C 复制代码
代码 public partial class Form3 : Form { public Form3() { InitializeComponent(); this.printDocument1.OriginAtMargins = true;//启用页边距 this.pageSetupDialog1.EnableMetric = true; //以毫米为单位 } //打印设置 private void btnSetPrint_Click(object sender, EventArgs e) { this.pageSetupDialog1.ShowDialog(); } //打印预览 private void btnPrePrint_Click(object sender, EventArgs e) { this.printPreviewDialog1.ShowDialog(); } //打印 private void btnPrint_Click(object sender, EventArgs e) { if (this.printDialog1.ShowDialog() == DialogResult.OK) { this.printDocument1.Print(); } } //打印内容的设置 private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e) { ////打印内容 为 整个Form //Image myFormImage; //myFormImage = new Bitmap(this.Width, this.Height); //Graphics g = Graphics.FromImage(myFormImage); //g.CopyFromScreen(this.Location.X, this.Location.Y, 0, 0, this.Size); //e.Graphics.DrawImage(myFormImage, 0, 0); ////打印内容 为 局部的 this.groupBox1 //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); //打印内容 为 自定义文本内容 Font font = new Font("宋体", 12); Brush bru = Brushes.Blue; for (int i = 1; i <= 5; i++) { e.Graphics.DrawString("Hello world ", font, bru, i*20, i*20); } } }
转自:http://www.cnblogs.com/freeliver54/archive/2010/10/20/1856978.html