DevExpress打印功能介绍
来源:互联网 发布:暗黑2 毁灭之王 mac 编辑:程序博客网 时间:2024/04/26 01:15
自己封装的方法:
{
//创建打印
PrintingSystem psData = new PrintingSystem();
//创建连接
PrintableComponentLink pcLink = new PrintableComponentLink();
//将连接添加至打印
psData.Links.AddRange(new object[] { pcLink });
//
pcLink.Component = gc;
// 设置纸张方向 true:横向 false:竖向
pcLink.Landscape = false;
pcLink.PaperKind = System.Drawing.Printing.PaperKind.A4;
pcLink.Margins.Bottom = 0;
pcLink.Margins.Top = 0;
pcLink.Margins.Left = 0;
pcLink.Margins.Right = 0;
//显示打印预览
pcLink.ShowPreview();
//直接打印
pcLink.PrintDlg();
}
以下为转载文章:
DevExpress打印功能介绍
一、打印功能说明:
打印功能,我们有多种实现方式,可以根据需要自行选择,我简单的总结下两种方法。
(1)、使用微软.net框架自带的PrintDocument,这种方式是直接借助Graphics,自行调整位置和行间距等,一行行一页页绘画打印页面,虽然可控制性强,但是操作比较麻烦,而且细节和页面美化上,实现更是繁琐复杂。
(2)、使用DevExpress框架,这里面也有很多种打印方法,这段时间我主要使用的是GridControll+PrintingSystem方法来实现打印,总结了以下,希望能对其他人有些帮助。
二、打印功能详细说明:
(1)、DevExpress中有很多控件已经自身实现了打 印接口( IPrintable, IBasePrintable等),即:此组件为了方便,提前对很多控件实现了打印功能。例如:GridControl,这个控件是我们用到的最多的数据 表格控件,常用来进行数据绑定和显示,操作和显示性都很好,对打印功能来说,基本能满足一般要求,但是需要对打印的文档进行详细细节的操作,可能无法满 足,所以加上PrintingSystem,打印控制便会更灵活。
(2)、详细代码实现:
public void Printing()
{
//相当于打印操作的控制器,起控制作用
PrintingSystem print = new PrintingSystem();
//相当于打印操作的实践者,真正完成打印功能操作
DevExpress.XtraPrinting.PrintableComponentLink link = null;
link = new DevExpress.XtraPrinting.PrintableComponentLink(print);
//借助GridControl控件提供打印格式和内容(根据需要提供)
link.Component = gridControlPrint;
//设置页眉和页脚
PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;
//设置页脚位置
phf.Footer.LineAlignment = BrickAlignment.Center;
phf.Header.Content.Clear();
//设置页眉内容
string headText = "页眉内容信息";
phf.Header.Content.Add(headText);
//设置页眉字体
phf.Header.Font = new System.Drawing.Font("宋体", 12, System.Drawing.FontStyle.Regular);
//设置页眉内容位置
phf.Header.LineAlignment = BrickAlignment.Far;
print.Links.Add(link);
//设置内容页页脚信息(一般为页码信息)
link.CreateMarginalFooterArea += new CreateAreaEventHandler(link_CreateMarginalFooterArea);
//设置内容页页眉信息(一般为页标题信息)
link.CreateMarginalHeaderArea += new CreateAreaEventHandler(link_CreateMarginalHeaderArea);
//创建打印文档,此步完成文档的绘画生成
link.CreateDocument(print);
//设置文档的名称,即:输出的打印文件的名称。
print.Document.Name = _docName;
//设置是否显示打印提示框,即:打印了几页,当前是第几页等···
print.ShowPrintStatusDialog = false;
//开始调用打印驱动设备,进行打印!
print.Print();
}
void link_CreateMarginalHeaderArea(object sender, CreateAreaEventArgs e)
{
//页信息块,可以设置页相关信息,一般设置:打印的页码信息
//PageInfoBrick vPageInfoBrick1 =e.Graph.DrawPageInfo(PageInfo.NumberOfTotal, "第{0}页,共{1}页", Color.Black,
// new RectangleF(0, 0, 100, 21), BorderSide.None);
//vPageInfoBrick1.LineAlignment = BrickAlignment.Center;
//vPageInfoBrick1.Alignment = BrickAlignment.Center;
//vPageInfoBrick1.AutoWidth = true;
//vPageInfoBrick1.Font = new System.Drawing.Font("宋体", 16, FontStyle.Bold);
//纯文本信息块,设置一些文字性说明信息,一般设置:简单的说明信息
TextBrick text = e.Graph.DrawString("纯文字信息块", Color.Black, new RectangleF(10, 10, 100, 40), BorderSide.None);
}
void link_CreateMarginalFooterArea(object sender, CreateAreaEventArgs e)
{
PageInfoBrick vPageInfoBrick1 = e.Graph.DrawPageInfo(PageInfo.NumberOfTotal, "第{0}页,共{1}页", Color.Black,
new RectangleF(0, 0, 100, 21), BorderSide.None);
vPageInfoBrick1.LineAlignment = BrickAlignment.Center;
vPageInfoBrick1.Alignment = BrickAlignment.Center;
vPageInfoBrick1.AutoWidth = true;
vPageInfoBrick1.Font = new System.Drawing.Font("宋体", 11f, FontStyle.Bold);
}
说明:1、完成数据填装,为gridControlPrint填装数据表格和数据。
2、创建PrintingSystem打印控制器和PrintableComponentLink打印功能块,为PrintableComponentLink指定打印关联容器gridControlPrint
3、在PrintableComponentLink添加文档页眉和页脚处理事件,进行相应的自定义的动态调整。
4、最后执行创建文档和打印操作。
- DevExpress打印功能介绍
- DevExpress打印
- DevExpress打印相关代码
- DevExpress.net打印相关
- DevExpress打印相关代码
- DevExpress打印详解
- DevExpress 如何打印
- DevExpress.XtraGrid.GridControl 打印
- Devexpress 自定义打印
- devExpress打印预览
- devexpress xtraReport 汉化功能
- DevExpress XPO 常用功能
- DevExpress GridControl功能汇集
- DevExpress界面控件介绍
- DevExpress.XtraGrid的统计功能
- DevExpress.XtraGrid的颜色功能
- 打印功能
- 打印功能
- selenium上滑动鼠标,浏览器接口不清零坐标参数
- 项目2——程序的多文件组织
- web布局-垂直居中
- Synchronized的用法
- Supervisor后台进程管理工具
- DevExpress打印功能介绍
- 理解OAuth 2.0
- 3S基础知识:MapInfo使用MapX开发实现若干小功能
- ThinkPHP 的页面静态化功能的实现(二)
- 安装Mysql 5.6,到Applying security settings时报错:Access denied for user 'root'@'localhost' (using password
- SDUT_2116 数据结构实验之链表一:顺序建立链表
- 集合 -- 简答题
- C语言中无符号数和有符号数之间的运算
- php在守护进程中,内存泄露用unset()解决办法