c#自定义打印功能

View Code
   //设置打印用的纸张 当设置为Custom的时候,可以自定义纸张的大小,还可以选择A4,A5等常用纸型
            this.printDocument1.DefaultPageSettings.PaperSize = new PaperSize("A4", 794, 1123);
            this.printDocument1.PrintPage += new PrintPageEventHandler(this.printDocument1_PrintPage);
            //将写好的格式给打印预览控件以便预览
            printPreviewDialog1.Document = printDocument1;
            //显示打印预览
            DialogResult result = printPreviewDialog1.ShowDialog()
View Code
 private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
        {
            if (gridOrder.ActiveRow == null) return;
            if (this.gridOrder.ActiveRow.Cells["state"].Text != "核准") return;
            //FL.FunModule.Functions.InitBrowseGridStyle(this.gridprinter);
            string id = this.gridOrder.ActiveRow.Cells["OrderID"].Text;
            string checktime = this.gridOrder.ActiveRow.Cells["CheckTime"].Text;

            /*如果需要改变自己 可以在new Font(new FontFamily("黑体"),11)中的“黑体”改成自己要的字体就行了,黑体 后面的数字代表字体的大小
       System.Drawing.Brushes.Blue , 170, 10 中的 System.Drawing.Brushes.Blue 为颜色,后面的为输出的位置 */
            e.Graphics.DrawString("新店开业POS机设备领用表", new Font(new FontFamily("黑体"), 12), System.Drawing.Brushes.Black, 300, 10);
            e.Graphics.DrawString("店    名:______________________                                                             督导姓名:_______________________", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Blue, 30, 28);
            e.Graphics.DrawString("开业时间:______________________                                                             督导电话:_______________________", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Blue, 30, 55);
           
            //产品信息
            string sql = " select b.Name,b.Unit,count(b.name) 数量,c.SerialNo, '' 验收日期 " +
                            " from IT_Out_Detail as a inner join IT_Product as b on a.prodID=b.id " +
                            " inner join IT_StockProd c on a.id=c.ID where a.OrderID='" + id + "'  group by b.name,a.sno,b.Unit,c.SerialNo order by a.sno";
            DataTable dt = DbHelperSQL.Query(sql).Tables[0];
            int i = 0;
            int height = 115;
            int width = 95;
            foreach (DataRow row in dt.Rows)
            {
                e.Graphics.DrawString(i.ToString(), new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 32, width);
                e.Graphics.DrawString(row["Name"].ToString(), new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 102, width);
                e.Graphics.DrawString(row["unit"].ToString(), new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 281, width);
                e.Graphics.DrawString(row["数量"].ToString(), new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 312, width);
                e.Graphics.DrawString(row["SerialNo"].ToString(), new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 352, width);
                e.Graphics.DrawString(row["验收日期"].ToString(), new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 552, width);
                e.Graphics.DrawLine(Pens.Black, 30, height, 750, height);
                i++;
                height = height + 30;
                width = width + 30;
            }

            e.Graphics.DrawLine(Pens.Black, 742, 75, 742, height-30);

            e.Graphics.DrawLine(Pens.Black, 30, 90, 750, 90);

            e.Graphics.DrawLine(Pens.Black, 30, 75, 30, height - 30);
            e.Graphics.DrawString("序号", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 32, 77);
            e.Graphics.DrawLine(Pens.Black, 100, 75, 100, height - 30);
            e.Graphics.DrawString("设备名称", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 102, 77);
            e.Graphics.DrawLine(Pens.Black, 279, 75, 279, height - 30);
            e.Graphics.DrawString("单位", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 281, 77);
            e.Graphics.DrawLine(Pens.Black, 310, 75, 310, height - 30);
            e.Graphics.DrawString("数量", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 312, 77);
            e.Graphics.DrawLine(Pens.Black, 350, 75, 350, height - 30);
            e.Graphics.DrawString("设备序列号", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 352, 77);
            e.Graphics.DrawLine(Pens.Black, 550, 75, 550, height - 30);
            e.Graphics.DrawString("验收日期", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 552, 77);
            e.Graphics.DrawLine(Pens.Black, 30, 75, 750, 75);//表头线

            //e.Graphics.DrawLine(Pens.Black, 40, 55, 800, height-20);
            e.Graphics.DrawString("备注:店长_______________领班_______________收银员帐号___________、__________", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Blue, 30, 1000);
            e.Graphics.DrawString("店面电话_______________宽带账号_______________________密码_______________", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Blue, 30, 1050);
            e.Graphics.DrawString("以上设备店面负责人确认:________________", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Blue,550,1050);
            //e.Graphics.DrawLine(Pens.Black, 8, 200, 480, 200);
           
            //e.Graphics.DrawLine(Pens.Black, 8, 115, 480, 115);
            //e.Graphics.DrawLine(Pens.Black, 8, 135, 480, 135);
            //e.Graphics.DrawLine(Pens.Black, 8, 155, 480, 155);
            //e.Graphics.DrawString("地址:新乡市河南科技学院信息工程学院", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 9, 210);
            //e.Graphics.DrawString("经办人:任忌", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 220, 210);
            //e.Graphics.DrawString("服务热线:15083128577", new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 320, 210);
            //e.Graphics.DrawString("入库时间:" + DateTime.Now.ToString(), new Font(new FontFamily("黑体"), 8), System.Drawing.Brushes.Black, 9, 230);
        }

posted on 2012-05-29 09:02  席梦天空  阅读(702)  评论(0编辑  收藏  举报

导航