程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> [C#]調用Bartender服務並打印bartender標簽

[C#]調用Bartender服務並打印bartender標簽

編輯:C#入門知識

[C#]調用Bartender服務並打印bartender標簽


通常大部分企業在生產,倉儲,QC等運作環節會用到標簽,標簽上有些各種標識。
一般的企業都有配有標簽軟件+專用的標簽打印機。此例以bartender為例子。
如果為了實現打印條碼,或者顯示具體的功能,用CR,FR等都可以實現。但這些報表工具畢竟不是專業的標簽軟件。
好兄弟大牛超哥分享了一個delphi寫的源碼,可惜我不會delphi也就沒有IDE環境去看源碼,就想C#寫一個類似的功能:
大概的思路:調用Bartender服務並打印bartender標簽
(1)下載Bartender的SDK,直接引用了(也沒有研究SDK,偷懶。。。)
(2)安裝bartender的軟件,並制作標簽作為測試用,本例:合格證。
(3)代碼實現
程序界面:
這裡寫圖片描述
制作標簽:
這裡寫圖片描述

代碼如下(其中一個標簽類型的代碼,其他省略):
    public partial class FrmQC : Form
    {
        public FrmQC()
        {
            InitializeComponent();
        }
        BarTender.Application btApp;
        BarTender.Format btFormat;


        private void Form1_Load(object sender, EventArgs e)
        {
            btApp = new BarTender.Application();
            this.num2.Value = 1;
        }
        private void button1_Click(object sender, EventArgs e)
        {
            int a = Int32.Parse(this.num2.Value.ToString());//設置打印數量的變量
            if (this.txtItem.Text.Length == 0 )
            {
                MessageBox.Show("未輸入料號");
            }
            else
            {
                btFormat = btApp.Formats.Open(@"C:\BarTenderFiles\合格證", false, "");
                btFormat.PrintSetup.IdenticalCopiesOfLabel = 1;  //設置同序列打印的份數
                btFormat.PrintSetup.NumberSerializedLabels = a;  //設置需要打印的序列數
                btFormat.SetNamedSubStringValue("品號", this.txtItem.Text); //向bartender模板傳遞變量
                btFormat.SetNamedSubStringValue("品名", this.txtName.Text); //向bartender模板傳遞變量
                btFormat.SetNamedSubStringValue("規格", this.txtDesc.Text); //向bartender模板傳遞變量
                btFormat.SetNamedSubStringValue("批號", this.txtPici.Text); //向bartender模板傳遞變量
                btFormat.SetNamedSubStringValue("日期", System.DateTime.Now.Year + "." + System.DateTime.Now.Month + "." + System.DateTime.Now.Day ); //向bartender模板傳遞變量
                btFormat.SetNamedSubStringValue("月份", System.DateTime.Now.Month + "月份"); //向bartender模板傳遞變量
                btFormat.SetNamedSubStringValue("月",  System.DateTime.Now.Month.ToString()); //向bartender模板傳遞變量


                btFormat.PrintOut(true, true); //第二個false設置打印時是否跳出打印屬性
                btFormat.Close(BarTender.BtSaveOptions.btSaveChanges); //退出時是否保存標簽



            }
        }
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            btApp.Quit(BarTender.BtSaveOptions.btSaveChanges);//界面退出時同步退出bartender進程
        }
    }

由於沒有測試環境沒有連接TSC標簽打印機,普通打印機A4紙張輸出結果:
這裡寫圖片描述

注意:標簽模板變量需設置成共享名。
否則會遇到這樣的問題:
紅色字體部分報錯 [System.Runtime.InteropServices.COMException] = {“已命名子字串 Name 未在已命名子字串列表中找到。”}求解決辦法

   

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved