Example #1
0
        public void StartPrint(EntityConfigBase data, string text, string caption)
        {
            XmlNode config = GetConfig(data.pageConfig);

            DataFillToXml(data, ref config);
            xmldata = config;
            //初始化页面实体
            pageentity = PageEntityManager <PageEntity> .Getentity(xmldata);

            DefaultPageSettings.Landscape = pageentity.Landscape;
            int       PageWidth  = CmToPix(pageentity.Width);
            int       PageHeigth = CmToPix(pageentity.Height);
            PaperSize p1         = null;

            for (int i = 0; i < PrinterSettings.PaperSizes.Count; i++)
            {
                if (PrinterSettings.PaperSizes[i].PaperName == pageentity.PageName)
                {
                    p1 = PrinterSettings.PaperSizes[i];
                    break;
                }
            }
            if (p1 == null)
            {
                p1 = new PaperSize(pageentity.PageName, PageWidth, PageHeigth);
            }
            DefaultPageSettings.PaperSize = p1;
            PrintShowDialog(text, caption);
        }
Example #2
0
        protected override void OnPrintPage(System.Drawing.Printing.PrintPageEventArgs e)
        {
            for (int i = 0; i < xmldata.ChildNodes.Count; i++)
            {
                XmlNode row  = xmldata.ChildNodes[i];
                string  name = row.Name;
                switch (name)
                {
                case "text":
                    textConfig(row, e);
                    break;

                case "line":
                    LineEntity lineentity = PageEntityManager <LineEntity> .Getentity(row);

                    decimal s_x = lineentity.S_x + pageentity.Margin_Left;
                    decimal s_y = lineentity.S_y + pageentity.Margin_Top;
                    decimal e_x = lineentity.E_x + pageentity.Margin_Left;
                    decimal e_y = lineentity.E_y + pageentity.Margin_Top;
                    e.Graphics.DrawLine(new Pen(Brushes.Black, lineentity.Width), GetPoint(s_x, s_y), GetPoint(e_x, e_y));
                    break;

                case "loop":
                    for (int j = 0; j < row.ChildNodes.Count; j++)
                    {
                        XmlNode row_loop  = row.ChildNodes[j];
                        string  name_loop = row_loop.Name;
                        switch (name_loop)
                        {
                        case "text":
                            textConfig(row_loop, e);
                            break;

                        default: break;
                        }
                    }
                    break;

                default: break;
                }
            }
            base.OnPrintPage(e);
        }