日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C#调用bartender进行动态打印以及批量打印的完整教程

發(fā)布時(shí)間:2023/12/15 C# 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C#调用bartender进行动态打印以及批量打印的完整教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

信息化過程中難免接觸到標(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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。