C#调用bartender进行动态打印以及批量打印的完整教程
信息化過程中難免接觸到標(biāo)簽打印機(jī),bartender是一款功能齊全的設(shè)計(jì)打印軟件,可以設(shè)計(jì)標(biāo)簽?zāi)0鍍?nèi)容,手動打印或者對接程序進(jìn)行動態(tài)打印。應(yīng)網(wǎng)友要求,出一個較為詳細(xì)的教程。
一、bartender軟件安裝
? ? ? ? 這個就不用多說了,自行網(wǎng)上下載安裝,建議專業(yè)版或者企業(yè)版。
二、標(biāo)簽?zāi)0逶O(shè)計(jì)
? ? ? ? 1.單個打印模板設(shè)計(jì):
標(biāo)簽內(nèi)容的動態(tài)值key設(shè)置,這個是我們動態(tài)調(diào)用時(shí)需要對應(yīng)的。如圖。這里我定義了一個二維碼和一個文本為例。
先來設(shè)定單個打印的模板,這里設(shè)置數(shù)據(jù)源的名稱就是單個打印的動態(tài)key了,后面在打印的時(shí)候會用到。
2.批量打印模板設(shè)計(jì)
批量打印的話這里以文本數(shù)據(jù)的模式為例因?yàn)楸容^簡單。如圖先設(shè)置數(shù)據(jù)庫數(shù)據(jù)源
根據(jù)向?qū)乱徊竭x擇
文本文件。
編碼注意選擇UTF8不然中文會亂碼。
文本文件內(nèi)容如圖,兩列,列用引號框起來,多列逗號分割。
?
?
勾選第一行是列標(biāo)題。完成后確定就可以刷新字段名。
?下一步就是關(guān)聯(lián)我們的模板中對應(yīng)組件。
選擇我們的數(shù)據(jù)庫字段,進(jìn)行字段的關(guān)聯(lián)如圖。
?另一個字段數(shù)量也是一樣。
到這里批量打印的模板就設(shè)計(jì)好了。
?我這里的版本是bartender10.1
三、動態(tài)庫引入
來到visualStudio中進(jìn)行動態(tài)庫引入。右鍵添加引入DLL。
四、使用封裝好的打印方法,打印測試。
我們改成PDF打印輸出來看看效果。
調(diào)用稍微有點(diǎn)耗時(shí),不過問題不大。
批量打印的效果如下。
?/// <summary>
? ? ? ? /// 單個打印
? ? ? ? /// </summary>
? ? ? ? /// <param name="sender"></param>
? ? ? ? /// <param name="e"></param>
? ? ? ? private void BtnSinglePrint_Click(object sender, EventArgs e)
? ? ? ? {
? ? ? ? ? ? BartenderHelper bartenderHelper = new BartenderHelper();
? ? ? ? ? ? string printMsg = "";// 打印結(jié)果消息
? ? ? ? ? ? Dictionary<string, string> data = new Dictionary<string, string>(); //打印內(nèi)容
? ? ? ? ? ? var dataArray = TxtSingleContent.Text.Split(",");
? ? ? ? ? ? if (dataArray.Length < 1) {
? ? ? ? ? ? ? ? MessageBox.Show("fail:格式不對");
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? ? ? // 組裝內(nèi)容
? ? ? ? ? ? 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:數(shù)據(jù)內(nèi)容不對" );
? ? ? ? ? ? ? ? return;
? ? ? ? ? ? }
? ? ? ? ? ? // 生成文本數(shù)據(jù)
? ? ? ? ? ? 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:數(shù)據(jù)內(nèi)容不對");
? ? ? ? ? ? ? ? ? ? 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:");
? ? ? ? ? ? }
? ? ? ? }
五、簡單源碼開放
遇到打印有問題的話,最好管理員權(quán)限運(yùn)行,bartender的打印需要管理員權(quán)限。
bartender使用完整案例
總結(jié)
以上是生活随笔為你收集整理的C#调用bartender进行动态打印以及批量打印的完整教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 啊哈哈
- 下一篇: c# char unsigned_dll