彩票走势图

DevExpress打印功能使用方法小结(含代码)

原创|其它|编辑:郝浩|2012-10-16 15:23:04.000|阅读 9344 次

概述:DevExpress一直备受关注,鉴于许多网友反映,对DevExpress所涉及到的打印不是很清楚,现特意为大家做了一个小结。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

DevExpress一直备受关注,鉴于许多网友反映,对DevExpress所涉及到的打印不是很清楚,现特意为大家做了一个小结,内容分为:

1、DevExpress 打印服务调用

if (_WebOrderModel.OrderNo.ToString().Trim().Equals("") == true) 
                return; 
            string OrderNo = _WebOrderModel.OrderNo; 
            //client.GetOrderNOAsync(orderno);  
            DocumentPreviewWindow preview = new DocumentPreviewWindow(); 
            ReportPreviewModel model = new ReportPreviewModel(); 
            //读取ReportService服务地址 
            model.ServiceUri = SystemControl.Super.GetAppSetting("ReportService.BaseURL"); 
            model.ReportTypeName = "Com.B2B.Admin.Report.XtraOrderDetail"; 
            model.Parameters["Weborderno"].Value = OrderNo; 
            //model.AutoShowParametersPanel = false;            
            preview.Model = model; 
            preview.Model.CreateDocument(); 
            preview.ShowDialog();

2、DevExpress打印相关代码

using System;

using System.Windows.Forms;

using DevExpress.XtraPrinting;

using System.Xml.Serialization;

namespace MyDevExpressDemo

{

 /// <summary>

 /// PrintSettingController 的摘要说明。

 /// </summary>

 public class PrintSettingController

 {

 PrintingSystem ps = null;

 string formName=null;


 DevExpress.XtraPrinting.PrintableComponentLink link=null;

 /// <summary>

 /// 

/// </summary>

 /// <param name="control">要打印的部件</param>

 /// <param name="FormName">此部件对应的布局信息</param>

 public PrintSettingController(IPrintable control,string FormName)

 {

 formName=FormName;

 ps=new DevExpress.XtraPrinting.PrintingSystem();

 link=new DevExpress.XtraPrinting.PrintableComponentLink(ps);

 ps.Links.Add(link);

 link.Component=control; 

ps.PageSettingsChanged-=new EventHandler(ps_PageSettingsChanged);

 LoadPageSetting();

 ps.PageSettingsChanged+=new EventHandler(ps_PageSettingsChanged);

 ps.AfterMarginsChange+=new MarginsChangeEventHandler(ps_AfterMarginsChange);



 }

 public void Preview()

 {

 try

 {

 if(DevExpress.XtraPrinting.PrintHelper.IsPrintingAvailable)

 {

 Cursor.Current=Cursors.AppStarting;

 if(_PrintHeader!=null)

 {

 PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;

 phf.Header.Content.Clear();

 phf.Header.Content.AddRange(new string[] {"",_PrintHeader,""});

 phf.Header.Font=new System.Drawing.Font("宋体",14,System.Drawing.FontStyle.Bold);

 phf.Header.LineAlignment=BrickAlignment.Center;

 }

 link.PaperKind=ps.PageSettings.PaperKind;

 link.Margins=ps.PageSettings.Margins;

 link.Landscape=ps.PageSettings.Landscape;

 link.CreateDocument();

 ps.PreviewForm.Show();



 }

 else

 {

 Cursor.Current=Cursors.Default;

 MessageBox.Show("打印机不可用", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

 }

 }

 finally

 {

 Cursor.Current=Cursors.Default;

 }

 }

 /// <summary>

 /// 打印控制器

/// </summary>

 /// <param name="control">要打印的部件</param>

 public PrintSettingController(IPrintable control)

 {

 if(control==null)return;

 Control c=(Control)control;

 formName=c.FindForm().GetType().FullName+"."+c.Name;

 ps=new DevExpress.XtraPrinting.PrintingSystem();

 link=new DevExpress.XtraPrinting.PrintableComponentLink(ps);

 ps.Links.Add(link);

 link.Component=control;

 ps.PageSettingsChanged-=new EventHandler(ps_PageSettingsChanged);

 LoadPageSetting();

 ps.PageSettingsChanged+=new EventHandler(ps_PageSettingsChanged);

 ps.AfterMarginsChange+=new MarginsChangeEventHandler(ps_AfterMarginsChange);



 }

 public void ExportToHtml()

 {

 try

 {

 using(SaveFileDialog fd=new SaveFileDialog())

 {

 fd.Title="导出HTML文件";

fd.RestoreDirectory=true;

 fd.Filter="HTML文件|*.htm";

 fd.FilterIndex=1;

 if(fd.ShowDialog()==DialogResult.OK)

 {

// if(obj is DevExpress.XtraGrid.GridControl)

// {

// ((DevExpress.XtraGrid.GridControl)obj).ExportToHtml(fd.FileName);

// MessageBox.Show("文件导出成功","导出",MessageBoxButtons.OK,MessageBoxIcon.Information);

// }

// else if(obj is DevExpress.XtraTreeList.TreeList)

// {

 link.CreateDocument();

 ps.ExportToHtml(fd.FileName);

 MessageBox.Show("文件导出成功","导出",MessageBoxButtons.OK,MessageBoxIcon.Information);

// }



 }

 }

 }

 finally

 {

 }

 }

 /// <summary>

 /// 网格分组时要导出,请使用这个,

/// </summary>

 public void GridGroupToExcel()

 {

 DevExpress.XtraGrid.GridControl grid=this.link.Component as DevExpress.XtraGrid.GridControl;

 if(grid!=null)

 {

 using(SaveFileDialog fd=new SaveFileDialog())

 {

 fd.Title="导出Excel文件";

fd.RestoreDirectory=true;

 fd.Filter="Excel文件|*.xls";

 fd.FilterIndex=1;

 if(fd.ShowDialog()==DialogResult.OK)

 {



 grid.ExportToExcel(fd.FileName);

 MessageBox.Show("文件导出成功","导出",MessageBoxButtons.OK,MessageBoxIcon.Information);





 }

 }

 }

 }

 public void ExportToExcel()

 {

 try

 {

 using(SaveFileDialog fd=new SaveFileDialog())

 {

 fd.Title="导出Excel文件";

fd.RestoreDirectory=true;

 fd.Filter="Excel文件|*.xls";

 fd.FilterIndex=1;

 if(fd.ShowDialog()==DialogResult.OK)

 {

// if(obj is DevExpress.XtraGrid.GridControl)

// {

// ((DevExpress.XtraGrid.GridControl)obj).ExportToExcel(fd.FileName);

// MessageBox.Show("文件导出成功","导出",MessageBoxButtons.OK,MessageBoxIcon.Information);

// }

// else if(obj is DevExpress.XtraTreeList.TreeList)

// {

 link.CreateDocument();

 ps.ExportToXls(fd.FileName);

 MessageBox.Show("文件导出成功","导出",MessageBoxButtons.OK,MessageBoxIcon.Information);

// }





 }

 }

 }

 finally

 {

 }

 }

 string _PrintHeader=null;

 /// <summary>

 /// 打印时的标题

/// </summary>

 public string PrintHeader

 {

 set

 {

 _PrintHeader=value;

 }

 }

 /// <summary>

 /// 进行打印

/// </summary>

 public void Print()

 {

 try

 {

 if(DevExpress.XtraPrinting.PrintHelper.IsPrintingAvailable)

 {

 if(_PrintHeader!=null)

 {

 PageHeaderFooter phf = link.PageHeaderFooter as PageHeaderFooter;

 phf.Header.Content.Clear();

 phf.Header.Content.AddRange(new string[] {"",_PrintHeader,""});

 phf.Header.Font=new System.Drawing.Font("宋体",14,System.Drawing.FontStyle.Bold);

 phf.Header.LineAlignment=BrickAlignment.Center;

 }

 link.PaperKind=ps.PageSettings.PaperKind;

 link.Margins=ps.PageSettings.Margins;

 link.Landscape=ps.PageSettings.Landscape;

 link.CreateDocument();

 link.CreateDocument();

 ps.Print();

 }

 else

 {

 Cursor.Current=Cursors.Default;

 MessageBox.Show("打印机不可用", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

 }

 }

 finally

 {

 }

 }




 private void ps_AfterMarginsChange(object sender, MarginsChangeEventArgs e)

 {

 SavePageSetting();

 }


 private void ps_PageSettingsChanged(object sender, EventArgs e)

 {

 SavePageSetting();

 }


 //获取页面设置信息

void LoadPageSetting()

 {

 try

 {

 string path=System.Windows.Forms.Application.StartupPath+"\\PrintLayout";

 if(!System.IO.Directory.Exists(path))

 {

 return;

 }

 path+="\\"+formName+".xml";

 if(!System.IO.File.Exists(path))

 {

 return;

 }

 XmlSerializer ser=new XmlSerializer(typeof(UserPageSetting));

 UserPageSetting setting=(UserPageSetting)ser.Deserialize(new System.IO.FileStream(path,System.IO.FileMode.Open,System.IO.FileAccess.Read,System.IO.FileShare.ReadWrite));



 System.Drawing.Printing.Margins m=new System.Drawing.Printing.Margins(setting.Left,setting.Right,setting.Top,setting.Bottom);

 ps.PageSettings.Assign(m,(System.Drawing.Printing.PaperKind)setting.PaperKind,setting.Landscape);

 }

 catch{}

 }

 /// <summary>

 /// 保存当前网格的布局

/// </summary>

 void SavePageSetting()

 {

 try

 {

 string path=System.Windows.Forms.Application.StartupPath+"\\PrintLayout";

 if(!System.IO.Directory.Exists(path))

 {

 System.IO.Directory.CreateDirectory(path);

 }

 path+="\\"+formName+".xml";

 DevExpress.XtraPrinting.XtraPageSettings setting= ps.PageSettings;

 UserPageSetting s=new UserPageSetting();

 s.Landscape=setting.Landscape;

 s.Left=setting.Margins.Left;

 s.Right=setting.Margins.Right;

 s.Top=setting.Margins.Top;

 s.Bottom=setting.Margins.Bottom;

 s.PaperKind=(int)setting.PaperKind;

 XmlSerializer ser=new XmlSerializer(s.GetType());

 ser.Serialize(new System.IO.FileStream(path,System.IO.FileMode.Create,System.IO.FileAccess.Write,System.IO.FileShare.ReadWrite),s);

 }

 catch{}

 }




 }

 /// <summary>

 /// 最终用户对某个打印页的设置

 /// </summary>

 [Serializable()]

 public class UserPageSetting

 {

 public UserPageSetting()

 {

 }

 public bool Landscape;

 public int PaperKind;

 public int Top;

 public int Bottom;

 public int Left;

 public int Right;

 }

}

3、Devexpress 自定义打印方法请参考  //cahobeh.cn/zh-cn/evquestions/viewinfo.aspx?qid=1013



标签:DevExpress

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn

文章转载自:慧都科技

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP