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进程        }    }
    
    
    
    
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

由于没有测试环境没有连接TSC标签打印机,普通打印机A4纸张输出结果:
这里写图片描述

注意:标签模板变量需设置成共享名。
否则会遇到这样的问题:
红色字体部分报错 [System.Runtime.InteropServices.COMException] = {“已命名子字串 Name 未在已命名子字串列表中找到。”}求解决办法

           

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!https://blog.csdn.net/jiangjunshow

你可能感兴趣的:(C 调用Bartender服务并打印bartender标签)