[搬家贴]
作者: explorer
邮箱: explorer.MT@Gmail.com
主页: http://blog.csdn.net/explorer_MT
发布: 2010-02-23
对Brother 条码标签打印机集成开发,主要涉及两个概念:
1. P-touch Editor
这个是标签设计软件,用于设计标签的样式、内容、格式。用法类似 FastReport QuickReport等报表设计工具,有可视化的界面,可以拖放Image、字符块、设置字体大小、条码空间等。完成后的文件就是一个 lbx 布局文件,将此文件发送给打印机即可打出标签。 此软件一般在购买打印机时附带的光盘中。
2. bPAC-SDK
全称是 Brother p-touch Applicable Component, 即Brother PT打印机编程接口组件。它的核心实现成一个COM组件,ProgID 是BrssCom.Document,通过它开放的方法,可以打开 lbx 文件,并修改其中的文本内容、条码内容,再输出打印。 BrssCom.Document提供的重要的方法就是: open (打开某个lbx)、doprint (将已打开的lbx内容输出打印)、SetText (替换lbx中的某index的text的内容)、SetBarcodeData(替换lbx中某index的barcode的内容)。
默认情况下直接调用doPrint(0, '0') 打印标签,你会发现每吐出一个条码标签前打印机总是会先吐出一小短空白的纸,这是由于brother的硬件设计,其转印头边缘至切刀有一小段距离,所以为 了保证每次都能顺利出标签,会先吐出一段空白的并切掉它。 如果需要批量打印,这无疑是很大的浪费、不便。 幸而SDK中考虑了这种情况,可以在调用DoPrint时通过组合 bpoAutoCut or bpoChainPrint 两个选项告诉打印机处于连续出纸态。
SDK 的文档 http://download.csdn.net/source/1933623
SDK 安装包 http://download.csdn.net/source/1933645
部署
需要安装打印机驱动、bPAC-SDK的重分发包(可使用官网提供的独立重分发安装包,或者使用SDK中提供的merge module合并到你自己的应用安装中)、你自己的终端应用。
结语
Brother的设计比较巧妙,通过分离设计标签样式、替换打印输出两步,为终端应用的集成提供了极大的灵活。完全可以让最终用户使用P- touch Editor自己设计标签样式,再由ISV的应用在运行时给其中label barcode动态赋值,即使样式后来再修改只要指定的index控件还在,也不影响应用程序的open settext等。与Godex的条码打印机使用的专用的EZPL打印控制语言相比,brother的方案提高了灵活性,并大大降低了用户的使用门槛。
下附delphi 实现的调用过程
procedure Print_Brother;
const
poFirst = $00000001 or $00000400;
poMiddle = $00000001 or $00000400;
poLast = $00000001;
var
vDOC: OleVariant;
lbxFile: String;
iCount: integer;
dwOption: Integer;
begin
if Not FileExists(lbxFile) then Raise Exception.Create('模板文件不存在,请联系系统管理员!');
vDOC:= CreateOleObject('BrssCom.Document');
try
vDOC.Open(lbxFile);
iCount:= vDOC.GetTextCount;
Assert(iCount> 0);
vDOC.SetText(0, aLTText);
vDOC.SetBarcodeData(0, aBarcode);
dwOption:= 0;
if FirstLabel then dwOption:= poFirst;
if MiddleLabel then dwOption:= poMiddle;
if LastLabel then dwOption:= poLast;
vDOC.DoPrint(dwOption, '0');
finally
vDOC:= Null;
end;
end;