程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 條碼打印

條碼打印

編輯:C#入門知識

最近的工程要求條碼打印~~咱用了簡單的方法,直接調用條碼對象生成圖像打印--

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Text;
 4     /// <summary>
 5     /// 打印編碼
 6     /// </summary>
 7     public sealed class PrintBarcode
 8     {
 9         BarcodeLib.Barcode _Barcode;
10         public PrintBarcode()
11         {
12 
13             _Barcode = new BarcodeLib.Barcode();
14             _Barcode.IncludeLabel = true;
15         }
16 
17         public System.Drawing.Image Fill(string BarcodeText)
18         {
19             //---12  或者13 長度   的時候用BarcodeLib.TYPE.EAN13這個編碼占小嘿嘿
20             if (BarcodeText.Length >= 12 && BarcodeText.Length <= 13)
21             {
22                 return _Barcode.Encode(BarcodeLib.TYPE.EAN13, BarcodeText, 100, 50);
23             }
24 
25 
26              //-------------------這裡可以適應小於13位置
27              return _Barcode.Encode(BarcodeLib.TYPE.CODE128, BarcodeText, 100,50);
28         }
29 
30 
31 
32     }

再輸出就行了哈,輸出的時候用pb.Fill適配條碼文本~~

BLL.PrintBarcode pb = new PrintBarcode();

        /// <summary>
        /// 打印事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void pd_PrintPage(object sender, PrintPageEventArgs e)
        {
            //---循環打印消息開始打印
            for (int Index = PrintIndex; Index < MessingList.PrintMessing.Count; Index++)
            {
                IPrintMessing TempMessing = MessingList.PrintMessing[Index];


                //---字體大小
                int FontSize = MessingList.StyleList.Style[TempMessing.Id].FontSize;
                
                //----特殊碼處理
                if (MessingList.StyleList.Style[TempMessing.Id].Type == PrintStyleType.Barcode)
                {

                    e.Graphics.DrawImage(pb.Fill(TempMessing.PrintValue), new System.Drawing.Point(TempMessing.Print_X, TempMessing.Print_Y));
                
                }
                else
                {
                    e.Graphics.DrawString(TempMessing.PrintValue, new System.Drawing.Font(new System.Drawing.FontFamily("黑體"), FontSize),
                        System.Drawing.Brushes.Black, TempMessing.Print_X, TempMessing.Print_Y);
                }
                    ////--打印後判斷是否是該頁結束
                if (TempMessing.isPageEnd)
                {
                    if (Index >= MessingList.PrintMessing.Count - 1)
                    {
                        //---最後一頁從新設置
                        PrintIndex = 0;
                        return;
                    }
                    else
                    {
                        //---重新在執行pd_PrintPage事件
                        e.HasMorePages = true;


                        //---負值給打印打印指針,跳過當前索引
                        PrintIndex = Index + 1;

                        //---判斷一頁結束
                        //----跳出循環
                        return;
                    }
                }




            }

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved