using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Forms; using DevExpress.XtraPrinting; namespace HL_FristAidPlatform_Print { #region 构造函数 /// /// 打印控制器 /// /// 要打印的部件 public class PrintChart { #region 私有字段 private PrintingSystem ps = null; private string formName = null; private PrintableComponentLink link = null; #endregion #region 属性 public string _PrintHeader = null; // 设置打印时的标题 private string _PrintFooter = null; // 设置打印时页脚显示内容 private bool _landScape; // 设置页面横纵向 private System.Drawing.Printing.PaperKind _paperKind; // 设置纸张类型(A1、A2、A3、A4) /// /// 设置打印时的标题 /// public string PrintHeader { set { _PrintHeader = value; } } /// /// 设置打印时页脚显示内容 /// public string PrintFooter { set { _PrintFooter = value; } } /// /// 设置页面横纵向 /// public bool LandScape { set { _landScape = value; } } /// /// 设置纸张类型(A1、A2、A3、A4) /// public System.Drawing.Printing.PaperKind PaperKind { set { _paperKind = value; } } #endregion public PrintChart(IPrintable control) { if (control == null) { return; } Control c = (Control)control; //formName = c.FindForm().GetType().FullName + "." + c.Name; ps = new PrintingSystem(); link = new PrintableComponentLink(ps); ps.Links.Add(link); link.Component = control; } #endregion #region 打印预览 /// /// 打印预览 /// 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("Tahoma", 14, System.Drawing.FontStyle.Bold); phf.Header.LineAlignment = BrickAlignment.Center; //设置页脚 phf.Footer.Content.Clear(); phf.Footer.Content.AddRange(new string[] { "", "", _PrintFooter }); phf.Footer.Font = new System.Drawing.Font("Tahoma", 9, System.Drawing.FontStyle.Regular); phf.Footer.LineAlignment = BrickAlignment.Center; } link.PaperKind = ps.PageSettings.PaperKind; link.Margins = ps.PageSettings.Margins; link.Landscape = ps.PageSettings.Landscape; link.CreateDocument(); //汉化 //DevExpress.XtraPrinting.Localization.PreviewLocalizer.Active = new Dxperience.LocalizationCHS.DxperienceXtraPrintingLocalizationCHS(); ps.PreviewFormEx.Show(); //} //else //{ // Cursor.Current = Cursors.Default; // MessageBox.Show("打印机不可用 ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //} } finally { Cursor.Current = Cursors.Default; } } #endregion #region 打印 /// /// 打印 /// 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; //设置页脚 phf.Footer.Content.Clear(); phf.Footer.Content.AddRange(new string[] { "", "", _PrintFooter }); phf.Footer.Font = new System.Drawing.Font("宋体", 9, System.Drawing.FontStyle.Regular); phf.Footer.LineAlignment = BrickAlignment.Center; } link.PaperKind = ps.PageSettings.PaperKind; link.Margins = ps.PageSettings.Margins; link.Landscape = ps.PageSettings.Landscape; link.CreateDocument(); link.CreateDocument(); //汉化 // DevExpress.XtraPrinting.Localization.PreviewLocalizer.Active = new Dxperience.LocalizationCHS.DxperienceXtraPrintingLocalizationCHS(); ps.Print(); //} //else //{ // Cursor.Current = Cursors.Default; // MessageBox.Show("打印机不可用 ", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); //} } finally { } } #endregion #region 获取页面设置信息 /// /// 获取页面设置信息 /// public void LoadPageSetting(int _Margins) { System.Drawing.Printing.Margins margins = new System.Drawing.Printing.Margins(_Margins, _Margins, _Margins, _Margins); ps.PageSettings.Assign(margins, _paperKind, _landScape); } #endregion } }