信息化过程中难免接触到标签打印机,bartender是一款功能齐全的设计打印软件,可以设计标签模板内容,手动打印或者对接程序进行动态打印。应网友要求,出一个较为详细的教程。
一、bartender软件安装
这个就不用多说了,自行网上下载安装,建议专业版或者企业版。
二、标签模板设计
1.单个打印模板设计:
标签内容的动态值key设置,这个是我们动态调用时需要对应的。如图。这里我定义了一个二维码和一个文本为例。
*
先来设定单个打印的模板,这里设置数据源的名称就是单个打印的动态key了,后面在打印的时候会用到。
2.批量打印模板设计
批量打印的话这里以文本数据的模式为例因为比较简单。如图先设置数据库数据源
根据向导下一步选择
文本文件。
编码注意选择UTF8不然中文会乱码。
文本文件内容如图,两列,列用引号框起来,多列逗号分割。
勾选第一行是列标题。完成后确定就可以刷新字段名。
下一步就是关联我们的模板中对应组件。
选择我们的数据库字段,进行字段的关联如图。
另一个字段数量也是一样。
到这里批量打印的模板就设计好了。
我这里的版本是bartender10.1
三、动态库引入
来到visualStudio中进行动态库引入。右键添加引入DLL。
四、使用封装好的打印方法,打印测试。
我们改成PDF打印输出来看看效果。
调用稍微有点耗时,不过问题不大。
批量打印的效果如下。
/// <summary>
/// 单个打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnSinglePrint_Click(object sender, EventArgs e)
{
BartenderHelper bartenderHelper = new BartenderHelper();
string printMsg = "";// 打印结果消息
Dictionary<string, string> data = new Dictionary<string, string>(); //打印内容
var dataArray = TxtSingleContent.Text.Split(",");
if (dataArray.Length < 1) {
MessageBox.Show("fail:格式不对");
return;
}
// 组装内容
data.Add("Code",dataArray[0]);
data.Add("Qty", dataArray[1]);
string bartenderFilePath =$@"{Environment.CurrentDirectory}//模板//test.btw";//模板路径
var isOk = bartenderHelper.BTPrint(bartenderFilePath, data, out printMsg);
if (!isOk) {
MessageBox.Show("fail:"+printMsg);
}
}
/// <summary>
/// 批量打印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void BtnBatchPrint_Click(object sender, EventArgs e)
{
BartenderHelper bartenderHelper = new BartenderHelper();
var lines = TxtBatchContent.Lines;
if (lines.Count() < 1) {
MessageBox.Show("fail:数据内容不对" );
return;
}
// 生成文本数据
string fileName = $@"printData_{Guid.NewGuid()}";// 文件名
List<string> dataList = new List<string>();
string title = "\"Code\",\"Qty\""; //列名
dataList.Add(title);
for (int i = 0; i < lines.Count(); i++) {
var lineArr = lines[i].Split(',');
if (lineArr.Count() < 1)
{
MessageBox.Show("fail:数据内容不对");
return;
}
dataList.Add($"\"{lineArr[0]}\",\"{lineArr[1]}\"");
}
fileName = WriteLog(dataList,"printData", fileName);
string bartenderFilePath = $@"{Environment.CurrentDirectory}//模板//batchTest.btw";//模板路径
var isOk = bartenderHelper.BTPrintByDataBase(bartenderFilePath, fileName);
if (!isOk)
{
MessageBox.Show("fail:");
}
}
五、源码开放
遇到打印有问题的话,最好管理员权限运行,bartender的打印需要管理员权限。
有需要定制打标软件需求的可以私信