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); }