佳博LabelShop模板文件转成佳博打印机指令软件

因公司需要,购买佳博标签打印机一台(GP1124T),用于打印大小标签。

机器刚到手时,搜了很多打印的方式,但打印的效果都不佳,有模糊不清晰,反而用机器的指令打印效果就不错,但询问他们的技术,他们公司提供的LabeShop软件制作的标签没办法直接用指令发送去打印,要打印还得一条条指令的敲。虽然敲起来也不麻烦,但考虑到日后标签更改维护、增加模板等问题,还是决定做一个指令生成软件(也方便以后没看过指令的人生成模板导进机器,也方便自己以后开发,主要还是因为最近比较闲~)。实现的平台是winform,用的C#解析lsdx(本质上就是xml文件),把数据一个个抓出来然后填到指令里面,然后指令整合起来就是一个模板,然后把模板下载进机器,以后要使用的时候Run模板,然后加几条填数据的指令再打印就OK了。


展示部分代码:


 //Bar就是画线,此函数获取模板中所有的线(仅限直线,斜线需另写)
        private void GetBar()
        {
            XmlNodeList barNodeList = m_xmdDoc.SelectNodes("/labelshopdocument/labelform/labellayer/labelobjects/drawobj[@type='drawline']");
            foreach (XmlNode bxn in barNodeList)
            {
                int left = Convert.ToInt32(bxn.Attributes["left"].Value);
                int top = Convert.ToInt32(bxn.Attributes["top"].Value) ;
                int right = Convert.ToInt32(bxn.Attributes["right"].Value);
                int bottom = Convert.ToInt32(bxn.Attributes["bottom"].Value);
                int linewidth = Convert.ToInt32(bxn.SelectSingleNode("./line").Attributes["linewidth"].Value) ;
                BarInfo bar = new BarInfo();
                bar.X = IntToDPI(left);
                bar.Y = IntToDPI(top);

                if (right - left == linewidth)
                { 
                    bar.Width = IntToDPI( linewidth)   ;
                    bar.Heigh = IntToDPI(bottom - top) ;
                }
                else
                {
                    bar.Width = IntToDPI(right - left);
                    bar.Heigh = IntToDPI(linewidth);
                } 
               // this.BarList.Add(bar);
                this.ICommandList.Add(bar);
            }
        }


这是界面图,极其简陋



试了一下打印的效果跟LabelShop差不多有些参数是写死的,并不全是靠抓的,因为一早上看xml看的头晕晕的懒得弄了

软件还会不断根据我的需求完善,毕竟就我一个人再用。有需要的可以留言

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 10
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值