DevExpress.XtraPrinting提供了DataGrid、ListView、TreeView控件打印,可以直接处理,呵呵,爽啊!
例子:
//自定义的一个过程
private void btnPreview_Click(object sender, System.EventArgs e) {
//设置当前光标样式
Cursor currentCursor = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
//设置打印系统变量
DevExpress.XtraPrinting.PrintingSystem ps = new DevExpress.XtraPrinting.PrintingSystem();
//这里定义一个DataGrid控件连接,当然,你可以定义ListView、TreeView控件连接
DevExpress.XtraPrintingLinks.DataGridLink printLink = new DevExpress.XtraPrintingLinks.DataGridLink();
//将打印连接指向需要打印的dataGrid1
printLink.DataGrid = dataGrid1;
printLink.CreateDocument(ps);
//给显示窗口一个标题吧
ps.PreviewForm.Text = “打印DataGrid控件内容“;
ps.PreviewForm.Owner = this;
//ok,开始打印啦
ps.PreviewForm.Show();
//恢复以前的光标样式
Cursor.Current = currentCursor;
}
感觉如何?是不是很爽?要是能够给打印的文档加一个标题是不是更爽?嘿嘿,这可费了俺好大功夫,最终发现可以这么来,......,算啦,给出一个完整的函数吧:
private void printDataGrid(DataGrid dataGrid,string printTitle)
{
//设置当前光标样式
Cursor currentCursor = Cursor.Current;
Cursor.Current = Cursors.WaitCursor;
DevExpress.XtraPrinting.PrintingSystem ps;
DevExpress.XtraPrintingLinks.DataGridLink dgdLink;
ps = new DevExpress.XtraPrinting.PrintingSystem();
dgdLink = new DevExpress.XtraPrintingLinks.DataGridLink();
dgdLink.DataGrid = dataGrid;
dgdLink.PageHeaderFooter =
new DevExpress.XtraPrinting.PageHeaderFooter
(new DevExpress.XtraPrinting.PageHeaderArea(new string[] {
"",
printTitle,
""},
new System.Drawing.Font("楷体_GB2312", 24F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))), DevExpress.XtraPrinting.BrickAlignment.Far),
new DevExpress.XtraPrinting.PageFooterArea(new string[] {
"打印日期 [Date Printed] [Time Printed]",
"",
"[Page # of Pages #]"},
new System.Drawing.Font("宋体", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(134))), DevExpress.XtraPrinting.BrickAlignment.Near));
dgdLink.CreateDocument(ps);
//给显示窗口一个标题吧
ps.PreviewForm.Text = "打印DataGrid控件内容";
//ok,开始打印啦
ps.PreviewForm.Show();
//恢复以前的光标样式
Cursor.Current = currentCursor;
}
Trackback: http://tb.blog.youkuaiyun.com/TrackBack.aspx?PostId=225253