winform 实现打印功能
2013-01-29 15:04
281 查看
在Winform中的打印主要可以通过三种方式来实现:一种是使用Winform提供的类,另一种是使用控件,还有一种就是利用水晶报表的打印。
打印控件主要优势是方便快捷,一般应用于简单、固定、单调的模板打印,其主要常用控件有:
(1) PrintDocument:是一个可用于设置属性来描述有关打印的信息,并且可用于调用方法Print()或通过事件PrintPage来打印文档的组件。
(2) PrintDialog:允许用户选择打印机并指定文档中要打印的部分。
(3) PrintPreviewDialog:此控件是一个打印预览对话框,用于显示文档的打印效果。该控件包含用于打印、放大、显示一页或多页以及关闭对话框的按钮。
(4) PageSetupDialog:主要用来设置页面大小,页边距等。
------------------------------------------------------
建个winform工程,拖如上四个控件,再拖三个按钮
public Form1()
{
InitializeComponent();
this.printDocument1.OriginAtMargins = true;
this.pageSetupDialog1.EnableMetric = true;
this.btnPrint.Click += new EventHandler(this.btn_Click);
this.btnPrintSet.Click += new EventHandler(this.btn_Click);
this.btnPrintView.Click += new EventHandler(this.btn_Click);
this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage_1);
}
private void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
switch (btn.Name)
{
case "btnPrintSet":
this.pageSetupDialog1.ShowDialog();
break;
case "btnPrintView":
this.printPreviewDialog1.ShowDialog();
break;
default:
if (pageSetupDialog1.ShowDialog() == DialogResult.OK)
{
this.printDocument1.Print();
}
break;
}
}
//打印内容的设置
private void printDocument1_PrintPage_1(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);
}
}
}
打印控件主要优势是方便快捷,一般应用于简单、固定、单调的模板打印,其主要常用控件有:
(1) PrintDocument:是一个可用于设置属性来描述有关打印的信息,并且可用于调用方法Print()或通过事件PrintPage来打印文档的组件。
(2) PrintDialog:允许用户选择打印机并指定文档中要打印的部分。
(3) PrintPreviewDialog:此控件是一个打印预览对话框,用于显示文档的打印效果。该控件包含用于打印、放大、显示一页或多页以及关闭对话框的按钮。
(4) PageSetupDialog:主要用来设置页面大小,页边距等。
------------------------------------------------------
建个winform工程,拖如上四个控件,再拖三个按钮
public Form1()
{
InitializeComponent();
this.printDocument1.OriginAtMargins = true;
this.pageSetupDialog1.EnableMetric = true;
this.btnPrint.Click += new EventHandler(this.btn_Click);
this.btnPrintSet.Click += new EventHandler(this.btn_Click);
this.btnPrintView.Click += new EventHandler(this.btn_Click);
this.printDocument1.PrintPage += new System.Drawing.Printing.PrintPageEventHandler(this.printDocument1_PrintPage_1);
}
private void btn_Click(object sender, EventArgs e)
{
Button btn = sender as Button;
switch (btn.Name)
{
case "btnPrintSet":
this.pageSetupDialog1.ShowDialog();
break;
case "btnPrintView":
this.printPreviewDialog1.ShowDialog();
break;
default:
if (pageSetupDialog1.ShowDialog() == DialogResult.OK)
{
this.printDocument1.Print();
}
break;
}
}
//打印内容的设置
private void printDocument1_PrintPage_1(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);
}
}
}
相关文章推荐
- winform实现发票打印功能
- winform简单打印功能实现
- winform 实现打印功能
- Winform的技巧琐碎总结----简单打印功能实现
- winform 实现打印功能
- Winform中代码Dialog控件实现(打开,保存,改变字体,颜色,打印功能)
- winform 实现打印功能
- winform 实现打印功能
- winform 实现打印功能
- 使用ScriptX实现特殊效果的页面打印功能
- Winform实现微信功能
- vc++学习篇(二)——打印和视频功能的实现
- web页面实现指定区域打印功能
- 分享ASP.NET使用Lodop控件实现Web打印功能
- JS 实现打印功能
- java实现打印功能
- 利用Word模板功能实现家长通知书的批量打印
- C#实现打印与打印预览功能
- C#--WinForm调用COM实现语音功能
- [转]在WPF中实现XPS打印和预览功能