private Top _top; //��һ�����д�ӡ��ʽ,��һ�о���,�����о���,�м��о��� #endregion Fields #region Constructors //�����Խ��˳�������,��һ���������,��̬���ش�ӡ����,�γ�����������������,��ӡ���⸴�ӵ����� public MisPrinter() { mCurrentPageIndex = 1; _rowsPerPage = 0; mCurrentRowIndex = 0; mCurrentRowIndexForFooter = 0; _isSewingLine = false; _isPrinterMargins = false; _isSubTotalPerPage = false; _subTotalCol = ""; _sewing = new Sewing(0,SewingDirectionFlag.Left); mPrintDocument = new PrintDocument(); _body = new Body(); //��Ҫ��������ʵ���� _gridBorder = GridBorderFlag.Double; }
//还可以将此程序稍微修改,用一个集体管理,动态加载打印对象,形成任意多个网格的组合体,打印任意复杂的网格 public MisGoldPrinterOfReWrite(bool p_IsLandscape, PrinterMargins printerMargins) { PrinterSingleton.Reset(); mCurrentPageIndex = 1; mCurrentRowIndex = 0; //单一模式,全部打印对象使用下面相同的对象,提高打印速度效率 mPrintDocument = PrinterSingleton.PrintDocument; mPrintDocument.DefaultPageSettings.Landscape = p_IsLandscape; mPrinterMargins = PrinterSingleton.PrinterMargins; // mPrintDocument.DocumentName = "MIS金质打印通,欢迎使用!"; _sewing = new Sewing(30, SewingDirectionFlag.Left); mPrinter = new Printer(); _body = new Body(); //主要对象,所以实例化 }
public void Print(bool print) { string[] leader = getLeaders(); XmlDocument doc = new XmlDocument(); doc.Load(Application.StartupPath.ToString() + "\\leader.xml"); string TableName = string.Empty; string s = string.Empty; string kuozhan = string.Empty; try { s = doc.SelectSingleNode("Config/Table").InnerText.ToString(); TableName = doc.SelectSingleNode("Config/TableName").InnerText.ToString(); kuozhan = doc.SelectSingleNode("Config/Kuozhan").InnerText.ToString(); } catch { s = ""; TableName = ""; kuozhan = ""; } MisPrinter webmis = new MisPrinter(); webmis.GridBorder = GoldPrinter.GridBorderFlag.SingleBold; Title title = new Title(); //title.Text = "平煤股份六矿人员定位系统综合日报表 " webmis.Title = null; webmis.Caption = TableName; webmis.Top = kuozhan + "|统计时间:" + label1.Text + "|" + s; webmis.Header = null; //MultiHeader multiHeader = new MultiHeader(1, 6); //multiHeader.SetText(0, 0, "部门"); //multiHeader.SetText(0, 1, "零点班"); //multiHeader.SetText(0, 2, "八点班"); //multiHeader.SetText(0, 3, "四点班"); //multiHeader.SetText(0, 4, "合计"); //multiHeader.SetText(0, 5, "备注"); //webmis.MultiHeader = multiHeader; Body body = new Body(); body.ColsAlignString = "LCCCCC"; body.DataSource = GetDataTable(); int mcols = 6; webmis.Body = body; webmis.IsSubTotalPerPage = false; //这是打印本页小计 webmis.SubTotalCol = (mcols - 2).ToString() + ";" + (mcols - 1).ToString(); //用分号分隔的要求小计的列 if (leader != null && leader.Length - 1 > 0) { Footer footer = new Footer(1, leader.Length - 1); for (int l = 0; l < leader.Length - 1; l++) { footer.SetText(0, l, leader[l].ToString() + ":"); } footer.IsDrawAllPage = false; webmis.Footer = footer; } else { webmis.Footer = null; } DayReport.Bottom bottom = new Bottom(); //Top/Bottom的另一种方式 bottom.Text = ""; webmis.Bottom = bottom; //将注释去掉试试看 Sewing sewing = new Sewing(20, SewingDirectionFlag.Left); webmis.Sewing = sewing; webmis.IsSewingLine = false; //打印装订线 webmis.IsSubTotalPerPage = false; //每页加小计 //webmis.PageSetup(); if (print) { webmis.Print(); } else { webmis.Preview(); } webmis.Dispose(); webmis = null; }