C#控制Bartender自动列印的2种方法(附源码)

目录

前言

一、安装CutePDF Writer

二、安装BarTender

三、C#控制BarTender的2种方法

方法1:

 方法2:

代码仓库地址 

总结


前言

  • 由于BarTender简单易用、兼容设备多,自制标签方便,在工厂受到了广泛使用;特别是BarTender自动化之后,在企业内部起着提升效率、防呆防错的作用。
  • 下面带大家了解C#控制BarTender的过程:

一、安装CutePDF Writer

  • CutePDF Writer可以将文字、图片、标签列印成PDF格式的文件,与打印机列印的效果是一致的,这里用它来模拟打印机。
  • 到官网下载:https://www.cutepdf.com/index.htm,下载好后进行安装。

  •  一路点Next,最后安装完成。

 

  • 操作系统设置CutePDF Writer为首选列印机 ,CutePDF Writer设置完成。


二、安装BarTender

  • 安装界面选择中文(简体) 

  • 选择试用版,土豪的小伙伴可以选择企业版或者自动化版,哈哈哈 

  •  打开BarTender,按照下面步骤创建标签,最后点击完成。

  •  标签添加1个条码和1个文本,保存为test.btw的档案

  •  回到BarTender,按Ctrl+P键打开列印窗口,点击打印开始列印标签

  •  因为之前设置操作系统的默认列印机为CutePDF Writer,所以点打印之后会自动将标签存为PDF,存放路径自行选择。

  • 打开PDF文件查看效果,BarTender部分到此 


三、C#控制BarTender的2种方法

方法1:

  • 与标签文件同一目录下创建param.txt文件,内容编辑为20220724,Made In Thailand;稍后会用到。

  

  •  鼠标右键条码选择属性,操作参考下图步骤

  •  数据库连接设置-->文本文件-->下一步

  •  按照下图填入txt档案的路径,点下一步 
  •  分隔符选择逗号“,”,点下一步直到完成 
  •  条码选择字段1,然后点关闭,条码设置完成

  •  文字鼠标右键选择属性-->选择字段2-->关闭,文字设置完成

  •  用C#写代码(这段代码VB、Java也可套用),然后运行程序 点击”列印方法1“按钮

 

  • 验证结果,序号和产地都是对的!

  • 附上完整代码 ,第1个方法完成!
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BarTenderDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory;
            string serialNumber = textBox1.Text;
            string origin = textBox2.Text;
            using (StreamWriter stream = new StreamWriter(path + "\\param.txt"))
            {
                stream.Write(serialNumber + "," + origin);
            }
            string filePath = path + "\\test.btw";
            PrintMethod1(filePath, "1");
        }

        private void button2_Click(object sender, EventArgs e)
        {

        }

        /// <summary>
        /// BarTender列印方法1
        /// </summary>
        /// <param name="destFilePath">文件路径</param>
        /// <param name="copies">列印份数</param>
        public void PrintMethod1(string destFilePath, string copies)
        {
            Process p = new Process();
            p.StartInfo.FileName = "bartend.exe";
            //列印btw檔案並最小化程序
            p.StartInfo.Arguments = $@"/AF={destFilePath} /P /min=SystemTray";
            p.EnableRaisingEvents = true;
            int pageCount = Convert.ToInt32(copies);
            for (int i = 0; i < pageCount; i++)
            {
                p.Start();
            }
        }
    }
}

 方法2:

  •  将之前btw文件复制在当前资料夹,文件命名为test02.btw 
  •  打开test02.btw文件,条码的名称、类型、嵌入的数据按照下图修改,关闭,保存

 

  •  文字的名称、类型、嵌入的数据按照下图修改,关闭,保存

 

  • 运行程序,点击”列印方法2“按钮执行 

 

  •  验证结果,序号和产地验证通过!

 

  • 附上完整代码 ,第2个方法完成! 
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace BarTenderDemo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            string path = AppDomain.CurrentDomain.BaseDirectory;
            string serialNumber = textBox1.Text;
            string origin = textBox2.Text;
            using (StreamWriter stream = new StreamWriter(path + "\\param.txt"))
            {
                stream.Write(serialNumber + "," + origin);
            }
            string filePath = path + "\\test.btw";
            PrintMethod1(filePath, "1");
        }

        private void button2_Click(object sender, EventArgs e)
        {
            string serialNumber = textBox1.Text;
            string origin = textBox2.Text;
            string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\test02.btw";
            PrintMethod2(filePath, "2", serialNumber, origin);
        }

        /// <summary>
        /// BarTender列印方法1
        /// </summary>
        /// <param name="destFilePath">文件路径</param>
        /// <param name="copies">列印份数</param>
        public void PrintMethod1(string destFilePath, string copies)
        {
            Process p = new Process();
            p.StartInfo.FileName = "bartend.exe";
            //列印btw檔案並最小化程序
            p.StartInfo.Arguments = $@"/AF={destFilePath} /P /min=SystemTray";
            p.EnableRaisingEvents = true;
            int pageCount = Convert.ToInt32(copies);
            for (int i = 0; i < pageCount; i++)
            {
                p.Start();
            }
        }

        /// <summary>
        /// BarTender列印方法2
        /// </summary>
        /// <param name="destFilePath">文件路径</param>
        /// <param name="copies">列印份数</param>
        /// <param name="serialNumber">序号</param>
        /// <param name="origin">产地</param>
        public void PrintMethod2(string destFilePath, string copies, string serialNumber, string origin)
        {
            BarTender.Application btApp = new BarTender.Application();
            BarTender.Format btFormat = btApp.Formats.Open(destFilePath, false, "");
            btFormat.NumberSerializedLabels = Convert.ToInt32(copies);//序列标签数
            btFormat.SetNamedSubStringValue("serialNumber", serialNumber);//条码
            btFormat.SetNamedSubStringValue("origin", origin);//文字
            btFormat.PrintOut(false, false);
            btFormat.Close(BarTender.BtSaveOptions.btSaveChanges);
        }
    }
}

代码仓库地址 

 github:https://github.com/CaoShangXi/BarTenderDemo.git

gitee:https://gitee.com/cao-fuzhou/BarTenderDemo.git

总结

文章介绍了C#控制BarTender的2种方法,希望能给大家提供帮助,如需更高阶功能请参阅官方帮助文档。
喜欢的小伙伴,请动动小手给个star哦,也欢迎提出更好的方法!

  • 8
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值