目录
前言
- 由于BarTender简单易用、兼容设备多,自制标签方便,在工厂受到了广泛使用;特别是BarTender自动化之后,在企业内部起着提升效率、防呆防错的作用。
- 下面带大家了解C#控制BarTender的过程:
一、安装CutePDF Writer
- CutePDF Writer可以将文字、图片、标签列印成PDF格式的文件,与打印机列印的效果是一致的,这里用它来模拟打印机。
- 到官网下载:https://www.cutepdf.com/index.htm,下载好后进行安装。
- 一路点Next,最后安装完成。
- 操作系统设置CutePDF Writer为首选列印机 ,CutePDF Writer设置完成。
二、安装BarTender
-
由于BarTender最新的版本不支持试用,所以这里下载2016的版本演示,下载地址为:https://www.bartender.hk/bartender-download
- 安装界面选择中文(简体)
- 选择试用版,土豪的小伙伴可以选择企业版或者自动化版,哈哈哈
- 打开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哦,也欢迎提出更好的方法!