• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C# WinForm 用于条码打印机生成及打印条形码

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

C# 生成并打印条形码

  由于前段时间接到一个开发小工具的任务,具体是实现输入旧条码,生成规定格式的新条码,并通过条码打印机打印出来的功能,废话不多说,直接上图。

         

功能描述选择本地打印机,填入打印数量,扫描枪扫描旧条码,工具会自动打印相应数量、规定格式的新条码出来。

 

主要代码:

1、生成条码

 1         /// <summary>
 2         /// 生成条码
 3         /// </summary>
 4         /// <param name="BarCode"></param>
 5         /// <returns></returns>
 6         public static Bitmap CreateCode(string BarCode)
 7         {
 8             // 1.设置条形码规格
 9             EncodingOptions options = new EncodingOptions();
10             options.Height = 80; // 必须制定高度、宽度
11             options.Width = 130;
12             options.PureBarcode = true; // 是否是纯码,如果为 false,则会在图片下方显示数字
13 
14             // 2.生成条形码图片并保存
15             BarcodeWriter writer = new BarcodeWriter();
16             writer.Options = options;
17             writer.Format = BarcodeFormat.CODE_128; //二维码编码
18 
19             return writer.Write(BarCode);  // 生成图片
20         }

 

2、排版,打印条码

 1         /// <summary>
 2         /// 排版,打印条码
 3         /// </summary>
 4         /// <param name="sender"></param>
 5         /// <param name="e"></param>
 6         private void printDocument1_PrintPage(object sender, PrintPageEventArgs e)
 7         {
 8             Font Fonts = new Font("Microsoft YaHei", 10, FontStyle.Regular); //标题字体  
 9             Font FontBarCode = new Font("Microsoft YaHei", 9, FontStyle.Regular); //条码字体           
10             Brush Brush = new SolidBrush(Color.Black); //画刷        
11 
12             try
13             {
14                 //获取条码上方条码信息
15                 DataRow[] dr = Dt.Select("Column2 = \'" + tbJTM.Text + "\'");
16                 if (dr.Length > 0)
17                 {
18                     var Width = dr[0].ItemArray[3].ToString().Length;
19 
20                     e.Graphics.DrawString(dr[0].ItemArray[3].ToString(), Fonts, Brush, new Point(155 - Width * 4, 10));
21                     e.Graphics.DrawString("                (New)", Fonts, Brush, new Point(55, 50));
22                     e.Graphics.DrawString(dr[0].ItemArray[6].ToString(), Fonts, Brush, new Point(155 - Width * 4, 70));
23 
24                     //使绘图质量最高,即消除锯齿
25                     e.Graphics.SmoothingMode = SmoothingMode.AntiAlias;
26                     e.Graphics.InterpolationMode = InterpolationMode.HighQualityBicubic;
27                     e.Graphics.CompositingQuality = CompositingQuality.HighQuality;
28 
29                     Bitmap bitmap = CreateCode(dr[0].ItemArray[5].ToString());
30                     e.Graphics.DrawImage(bitmap, new Point(65, 90));
31 
32                     e.Graphics.DrawString(dr[0].ItemArray[5].ToString(), FontBarCode, Brush, new Point(110, 175));
33 
35                 }
36             }
37             catch (Exception ex)
38             {
39                 MessageBox.Show(ex.Message);
40             }
41         }

3、打印效果图

    

   具体的条码上方的信息,是通过读取txt文件获取转换的,然后新建项目的时候,我选择的是最低版本的.NetFramework 2.0,这样可以兼容绝大多数电脑的.NetFramework版本.这种方式是我测了好多遍总结出来的,算是最简单的方法,希望对大家有帮助。

  死亡如风,常伴吾身~ 哈撒给~

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C#.Net基础知识点解答发布时间:2022-07-10
下一篇:
用Ngen指令加快C#程序的启动速度发布时间:2022-07-10
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap