winform 打印小票

后台代码

 1   panPrintContent.Visible = true;
 2             var strlPrinterMode = "";
 3 
 4             this.pageSetupDialog1.PageSettings.Margins.Left = 1;
 5             this.pageSetupDialog1.PageSettings.Margins.Top = 1;
 6             this.pageSetupDialog1.PageSettings.Margins.Right = 21;
 7             this.pageSetupDialog1.PageSettings.Margins.Bottom = 21;
 8             panPrintContent.Visible = true;
 9 
10             //打印设置
11             try
12             {
13                 string sqls = "select PrinterMode from User_Org where UserID='" + DBCommonServer.strUserName + "' and OID='" + DBCommonServer.strOrgId + "' ";
14                 DataTable dt1 = helps.GetDataTable(sqls);
15                 if (dt == null)
16                 {
17                     return;
18                 }
19                 if (dt1.Rows.Count > 0)
20                 {
21                     strlPrinterMode = dt1.Rows[0][0].ToString();
22                 }
23                 if (strlPrinterMode == "0")
24                 {
25                     this.printPreviewDialog1.ShowDialog();
26                 }
27                 else
28                 {
29                     for (int i = 0; i < Convert.ToInt32(strlPrinterMode); i++)
30                     {
31                         
32                         this.printDocument1.Print();
33                     }
34                 }
35             }
36             catch (Exception)
37             {
38                 MessageBox.Show("您好!您的电脑有可能打印服务没有启动或是没有安装打印机。"
39                                  + Environment.NewLine + Environment.NewLine + "请先启动打印服务或是安装打印机!");
40             }
View Code
 1  /// <summary>
 2        /// 打印内容
 3        /// </summary>
 4        /// <param name="sender"></param>
 5        /// <param name="e"></param>
 6         private void printDocument1_PrintPage_1(object sender, System.Drawing.Printing.PrintPageEventArgs e)
 7         {
 8             ////打印内容 为 局部的 this.groupBox1
 9             Bitmap _NewBitmap = new Bitmap(this.panPrintContent.Width, this.panPrintContent.Height);
10             this.panPrintContent.DrawToBitmap(_NewBitmap, new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height));
11             e.Graphics.DrawImage(_NewBitmap, 0, 0, _NewBitmap.Width, _NewBitmap.Height);
12         }
View Code

动态获得控件

 1   int iheight = iLabHeight * i;
 2                     Label LlabPrintPayType = new Label();
 3                     LlabPrintPayType.Name = "LlabPrintPayType" + i;
 4                     //  LlabPrintPayType.Location = new Point(ilabPrintPayType_X, ilabPrintPayType_Y + iheight);
 5                     LlabPrintPayType.Location = new Point(25,i*20+20);
 6                     LlabPrintPayType.Text = dtlistPay.Rows[i]["付款方式名称"].ToString() + (dtlistPay.Rows[i]["卡号"].ToString() == "" ? "" : "(" + dtlistPay.Rows[i]["卡号"].ToString() + ")");
 7                     LlabPrintPayType.Height = 20;
 8                     panFkfs.Controls.Add(LlabPrintPayType);
 9                     Label LlabPrintCost = new Label();
10                     LlabPrintCost.Name = "LlabPrintCost" + i;
11                     LlabPrintCost.Location = new Point(170, i * 20 + 20);
12                     string strPrintCost = decimal.Round(Convert.ToDecimal(dtlistPay.Rows[i]["金额"].ToString()), 2, MidpointRounding.AwayFromZero).ToString();
View Code

前台代码

原文地址:https://www.cnblogs.com/yuanjiehot/p/4377008.html