barcodelib打印条码C#例子

来源:互联网 发布:项目管理平台软件 编辑:程序博客网 时间:2024/06/11 19:49

先引用barcodelib控件



using System.Threading;
using System.Drawing.Printing;


private void button1_Click(object sender, EventArgs e)

        {
            DialogResult result = MessageBox.Show("你确定要打印条码一?", "信息提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information);


            if (result == DialogResult.OK)
            {
                Control.CheckForIllegalCrossThreadCalls = false;
                //打印次数
                printDocument1.PrinterSettings.Copies = Convert.ToInt16(txt_print.Text.Trim());
                //换成多线程方式
                if (thre == null)
                {
                    thre = new Thread(this.printDocument1.Print);
                    thre.Start();
                }
                if (thre.ThreadState == ThreadState.Stopped)
                {
                    thre.Abort();
                    GC.Collect();
                    thre = new Thread(this.printDocument1.Print);
                    thre.Start();
                }
            }

        }


private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            ////打印内容 为 局部的 this.groupBox1
            //Bitmap _NewBitmap = new Bitmap(pane_Barcode.Width, pane_Barcode.Height);
            //pane_Barcode.DrawToBitmap(_NewBitmap, new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height));
            //e.Graphics.DrawImage(_NewBitmap, 0, 0, _NewBitmap.Width, _NewBitmap.Height);


            //Bitmap _NewBitmap = new Bitmap(pictureBox1.Width, pictureBox1.Height);
            ////pane_Barcode.DrawToBitmap(_NewBitmap, new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height));
            //e.Graphics.DrawImage(_NewBitmap, 0, 0, _NewBitmap.Width, _NewBitmap.Height);


                System.Drawing.Image image;
                int width = 100, height = 55;
                int width2 = 370, height2 = 50;


                //注意:登陆的时候有把服务器的这2个文件拷贝到本地
                fileSavePath0_ = System.IO.Path.GetTempPath() + "BarcodePattern.jpg";
                fileSavePath1_ = System.IO.Path.GetTempPath() + "BarcodePattern2.jpg";


                DateTime dt = DateTime.Now;


                fileSavePath = System.IO.Path.GetTempPath() + string.Format("{0:yyyyMMddHHmmssffff}", dt) + ".jpg";
                if (File.Exists(fileSavePath))
                {
                    fileSavePath = System.IO.Path.GetTempPath() + string.Format("{0:yyyyMMddHHmmssffff}", dt) + "1.jpg";
                }
                File.Copy(fileSavePath0_, fileSavePath);


                DateTime dt2 = DateTime.Now;


                fileSavePath2 = System.IO.Path.GetTempPath() + string.Format("{0:yyyyMMddHHmmssffff}", dt2) + ".jpg";
                if (File.Exists(fileSavePath2))
                {
                    fileSavePath2 = System.IO.Path.GetTempPath() + string.Format("{0:yyyyMMddHHmmssffff}", dt2) + "2.jpg";
                }
                System.IO.File.Copy(fileSavePath1_, fileSavePath2);


                GetBarcode(height, width, BarcodeLib.TYPE.CODE128, txt_qty.Text + "  ", out image, fileSavePath2, 1);
                pictureBox6.Image = GetFile(fileSavePath2);


                GetBarcode(height2, width2, BarcodeLib.TYPE.CODE128, txt_barcode.Text, out image, fileSavePath, 2);
                pictureBox7.Image = GetFile(fileSavePath);


                //---------------------------------------------------------






                Bitmap _NewBitmap = new Bitmap(panel1.Width, panel1.Height);
                panel1.DrawToBitmap(_NewBitmap, new Rectangle(0, 0, _NewBitmap.Width, _NewBitmap.Height));
                e.Graphics.DrawImage(_NewBitmap, 0, 0, _NewBitmap.Width, _NewBitmap.Height);


                e.Graphics.DrawString("CHIAPHUA COMPONENTS LTD", new Font(new FontFamily("宋体"), 14), System.Drawing.Brushes.Blue, 70, 12);


                e.Graphics.DrawString("MODEL :", new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 8, 40);
                e.Graphics.DrawString(txt_part.Text, new Font(new FontFamily("Arial"), 14, FontStyle.Bold), System.Drawing.Brushes.Blue, 100, 38);


                e.Graphics.DrawString("CUST PART:", new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 8, 64);
                e.Graphics.DrawString(txt_cpart.Text, new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 100, 64);


                e.Graphics.DrawString("P/O#:", new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 8, 90);
                e.Graphics.DrawString(txt_cpo.Text, new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 100, 90);


                e.Graphics.DrawString("Date Code:" + txt_Dcode.Text, new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 240, 90);


                e.Graphics.DrawString("QTY:", new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 8, 118);
                e.Graphics.DrawString(txt_qty.Text + "EA", new Font(new FontFamily("Arial"), 16, FontStyle.Bold), System.Drawing.Brushes.Blue, 100, 114);


                e.Graphics.DrawString("DESC: ", new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 8, 144);
                e.Graphics.DrawString(txt_des.Text, new Font(new FontFamily("宋体"), 11), System.Drawing.Brushes.Blue, 100, 144);


                string kkk = "";
                kkk = kkk + "RoHS ";


                e.Graphics.DrawString(kkk, new Font(new FontFamily("宋体"), 10), System.Drawing.Brushes.Blue, 290, 144);
            }
}


public static void GetBarcode(int height, int width, BarcodeLib.TYPE type, string code, out System.Drawing.Image image, string fileSaveUrl, int wz)
        {
            try
            {
                image = null;
                BarcodeLib.Barcode b = new BarcodeLib.Barcode();
                b.BackColor = System.Drawing.Color.White;//图片背景颜色
                b.ForeColor = System.Drawing.Color.Black;//条码颜色
                b.IncludeLabel = true;
                if (wz == 1)
                {
                    b.Alignment = BarcodeLib.AlignmentPositions.LEFT;
                }
                if (wz == 2)
                {
                    b.Alignment = BarcodeLib.AlignmentPositions.CENTER;
                }
                b.LabelPosition = BarcodeLib.LabelPositions.BOTTOMCENTER;//code的显示位置
                b.ImageFormat = System.Drawing.Imaging.ImageFormat.Jpeg;//图片格式
                System.Drawing.Font font = new System.Drawing.Font("verdana", 10f);//字体设置
                b.LabelFont = font;
                b.Height = height;//图片高度设置(px单位)
                b.Width = width;//图片宽度设置(px单位)


                image = b.Encode(type, code);//生成图片
                image.Save(fileSaveUrl, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch (Exception ex)
            {
                image = null;
            }
        }


        private Image GetFile(string path)
        {
            MemoryStream stream = ReadFile(path);
            return stream == null ? null : Image.FromStream(stream);
        }


        private MemoryStream ReadFile(string path)
        {
            if (!File.Exists(path))
                return null;


            using (FileStream file = new FileStream(path, FileMode.Open))
            {
                byte[] b = new byte[file.Length];
                file.Read(b, 0, b.Length);


                MemoryStream stream = new MemoryStream(b);
                return stream;
            }
        }