C#+CodeSoft 根据Label模板打印标签

环境:Windows 10,Visual Studio 2017,ASP.NET Mvc,CodeSoft 2018


写在前面:

1、需要安装CodeSoft,可以试用一个月或者100次,版本自己看着办。

2、需要引入Interop.LabelManager2、Interop.TkxRFTAG。

      如果报错,需要改一下dll的[嵌入互操作类型]。


一开接触这个东西的时候,百度一下出来的结果还挺多的,代码也很简单,以为很容易搞定就没留意,然而。。。。。。

事情并没有那么顺利。。。

问题就出在给Label模板的变量赋值上。。。

网上很多人说的[自由变量],在代码实际操作中找不到,报空引用。。。

实际要选择的变量类型是[表单](不同的CodeSoft版本叫法可能不一样)。


下面说一下具体流程:

1、Label模板制作:不说那些具体操作,只是单纯想说一下那个变量的问题,就是在C#里面通过他把数据写入模板的。在操作界面左下角有一个对象窗口,里面有很多类型的对象(如:文本、图片、条形码等),选中具体对象 右键→属性,属性面板可以看到一个数据源选项,在变量右边选择新建数据源→选择[表单],进去变量面板可以输入变量名(Var0)和值,这个变量名就是可以在C#中给他赋值的变量。

2、C#打印标签:

a、利用LabelManager2.ApplicationClass打开Label模板。

b、根据之前创建的变量名,写入数据到Label模板。

c、调用doc.PrintDocument(1)打印标签,参数是打印标签的数量。

        public void Print(string para1, string para2)
        {
            ApplicationClass lbl = new ApplicationClass();

            try
            {
                lbl.Documents.Open(@"D:\label.Lab", false);// 调用设计好的label文件
                Document doc = lbl.ActiveDocument;
                doc.Variables.FormVariables.Item("Var0").Value = para1; //给参数传值
                doc.Variables.FormVariables.Item("Var1").Value = para2; //给参数传值

                doc.PrintDocument(1);                             //打印
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                lbl.Quit();                                      //退出
            }
        }

猜你喜欢

转载自blog.csdn.net/u012835032/article/details/107862717