通过程序(C# C/S)调用Sato Label Gallery标签模板 打印

     近期公司导入一个新项目,需要用到通过程序管理标签信息并能及时的打印出来。

 

     公司硬件环境: PC、Sato标签打印机

     软件环境:   Win7 32Bit

     开发环境:  VS2010 32Bit


     通过查看Label Gallery技术文件,发现可以通过ActiveX与DDL的方式分别编写WEB或C/S程序来调用标签模板并访问模板内的变量,然后打印。


     但使用VS2010开发时需要使用到Label Gallery软件提供的一个DLL文件。

     PS: 在Label Gallery 3 的版本中DLL叫 LabelGalleryPlus3WR.dll,(这个DLL在Label Gallery 3的安装目录内可以找到,与程序EXE在一个目录内)

    

    技术说明文件内介绍的DLL名称是LabelGalleryPlus2WR.dll,不知道是不是因为是之前的版本,这里就不管它了。   


    需要说明的是技术文件内是需要导入LabelGalleryPlus3WR.dll这个文件,可是我下载到的官方DEMO内却导入是LabelGalleryEngine3WR.dll这个DLL文件。

     如果想使用LabelGalleryPlus3WR.dll,不想去再另外下载的,也可以直接引用LabelGalleryPlus3WR.dll


    LabelGalleryEngine3WR.dll文件是一个DEMO程序内包含的,DOMO程序下载地址:

          http://www.satoworldwide.com/sites/satoworldwide_com/Uploads/Files/LabelGallery/LabelGallery_IntegrationPack3.zip

   PS:添加DLL引用时,可以系统会报错,无法引用 ,这个时候请先使用Regsvr32 进行DLL注册,然后再引用DLL即可。


    引用成功后,具体的实现代码如下(只是一个测试程序,所以没有太复杂的处理):

 

            if (txtOpenFile.Text.Trim() == "")    //标签模板文件
            {
                MessageBox.Show("Please Select file!");
                return;
            }  

            LGApp objApp= new LGApp() ;     //实例化读取标签的对象
            LGLabel ObjLabel = objApp.LabelOpenEx(txtOpenFile.Text);   //读取标签

            try
            {
                if (txtVar1.Text.Trim() != "" && txtVarValue1.Text.Trim() != "")   //根据情况给标签内的变量赋值  txtVar1代表变量名 txtVar1Value代表变更值
                {
                    ObjLabel.Variables.FindByName(txtVar1.Text.Trim()).SetValue(txtVarValue1.Text.Trim());
                }
            }
            catch
            {
                MessageBox.Show("Variable1 name Or Variable1 value is invalid");
            }

            try
            {
                if (txtVar2.Text.Trim() != "" && txtVarValue2.Text.Trim() != "")   //根据情况给标签内的变量赋值  txtVar2代表变量名 txtVar2Value代表变更值
                {
                    ObjLabel.Variables.FindByName(txtVar2.Text.Trim()).SetValue(txtVarValue2.Text.Trim());
                }
            }
            catch
            {
                MessageBox.Show("Variable2 name Or Variable2 value is invalid");
            }

            int PrintQty;
            try
            {
                PrintQty = int.Parse(txtQuantity.Text);  
            }
            catch {
                PrintQty = 0;
            }

            if (PrintQty > 0)
            {
                ObjLabel.Print(txtQuantity.Text);  //打印  传入打印的数量
                objApp.LabelClose(0);                //关闭引用
            }

   

                                   

 

猜你喜欢

转载自blog.csdn.net/uiwgi/article/details/38559705