BarTender是一款优秀的条形码打印软件,可以支持很多种类型的条形码设计和打印,具体大家可参考他的官网(Automated and Integrated Barcode Label Design Software | BarTender),这里不多介绍。
本来在做SilverLight的东西的,后来项目有需求,说要在系统里加入条形码的设计和打印功能,PM提出两个方案,一个就是自己去开发一个条形码设计器,这样的好处就是跟系统的集成使用比较方便,但是开发这个设计器又是一个比较大的Task;另外一个方案就是使用客户原有的BarTender软件,把软件集成到系统中,那么设计部分还是交由BarTender去完成,我们的系统只需开发集成的部分就好。经过商量,大家决定了采取集成BarTender的方案,于是就要找人去做技术攻关了,跟原来的Partner商量了一下,他说想继续深入学习SilverLight,我就想去涉猎更多的东西,于是刚好,分道了~~
在刚开始接触BarTender的时候,发现网上的资料很少,我是把他们官网上的资料都看了,什么白皮书啊,向导之类的都看了。我们的系统是ASP.NET做的,通过一段时间的学习,知道了BarTender的几种集成模式。ActiveX COM集成,Commander的触发式集成,还有9.0版本后支持的.NET SDK的支持。简单说说这几个方式:
1、ActiveX COM:BarTender在你的机器上安装好后,会在机器上注册一个COM,你在程序中可以调用这个COM,使用他提供的方法和属性,进行BarTender的程序级控制。这个集成方式比较实用,对BarTender的版本要求低,不过因为是基本的COM使用,所以要求你对COM的接口比较熟悉,对整个BarTender的调用流程和细节比较清晰,对于COM接口的描述,大家可以参考Automation.chm这个帮助文档(在Seagull\BarTender Suite\BarTender目录下)。
2、Commander的触发式集成:简单来说,这个是通过配置BarTender,让他监视某个文件,当程序生成这个文件的时候,就会触发唤醒BarTender进行打印工作,这种方式我觉得不大好用,所以了解也不多,欢迎讨论交流。
3、.NET SDK:这个是9.0版本开始支持的一个适用于.NET框架的SDK,里面提供了很多类来进行BarTender的控制,由于这个SDK也是用.NET编写的,所以对于用在.NET下的集成非常方便,不过由于对版本有要求,所以要考虑客户的成本来使用。
一、.NET SDK
我们的项目开始的时候是使用.NET SDK 的,因为那时都还没有搞清楚客户是需要在服务器打印还是客户端打印,老大就要求先开始研究了,这个很气人!做了许久才说客户要在客户端打印,把之前做的一切东西都推翻了~~
.NET SDK里面分开了两个,一个是标准的,一个是Server版的,标准的只是简单的开启BarTender进程去处理打印任务,所以当有多个任务同时打印的时候,就需要自己去管理任务队列问题;而Serve