您的位置:首页 > 其它

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);

}

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: