Brother 打印机集成开发总结
[搬家貼]
作者: explorer
郵箱: explorer.MT@Gmail.com
主頁(yè): http://blog.csdn.net/explorer_MT
發(fā)布: 2010-02-23
?
對(duì)Brother 條碼標(biāo)簽打印機(jī)集成開(kāi)發(fā),主要涉及兩個(gè)概念:
1. P-touch Editor
這個(gè)是標(biāo)簽設(shè)計(jì)軟件,用于設(shè)計(jì)標(biāo)簽的樣式、內(nèi)容、格式。用法類似 FastReport QuickReport等報(bào)表設(shè)計(jì)工具,有可視化的界面,可以拖放Image、字符塊、設(shè)置字體大小、條碼空間等。完成后的文件就是一個(gè) lbx 布局文件,將此文件發(fā)送給打印機(jī)即可打出標(biāo)簽。 此軟件一般在購(gòu)買打印機(jī)時(shí)附帶的光盤中。
2. bPAC-SDK
全稱是 Brother p-touch Applicable Component, 即Brother PT打印機(jī)編程接口組件。它的核心實(shí)現(xiàn)成一個(gè)COM組件,ProgID 是BrssCom.Document,通過(guò)它開(kāi)放的方法,可以打開(kāi) lbx 文件,并修改其中的文本內(nèi)容、條碼內(nèi)容,再輸出打印。 BrssCom.Document提供的重要的方法就是: open (打開(kāi)某個(gè)lbx)、doprint (將已打開(kāi)的lbx內(nèi)容輸出打印)、SetText (替換lbx中的某index的text的內(nèi)容)、SetBarcodeData(替換lbx中某index的barcode的內(nèi)容)。
默認(rèn)情況下直接調(diào)用doPrint(0, '0') 打印標(biāo)簽,你會(huì)發(fā)現(xiàn)每吐出一個(gè)條碼標(biāo)簽前打印機(jī)總是會(huì)先吐出一小短空白的紙,這是由于brother的硬件設(shè)計(jì),其轉(zhuǎn)印頭邊緣至切刀有一小段距離,所以為 了保證每次都能順利出標(biāo)簽,會(huì)先吐出一段空白的并切掉它。 如果需要批量打印,這無(wú)疑是很大的浪費(fèi)、不便。 幸而SDK中考慮了這種情況,可以在調(diào)用DoPrint時(shí)通過(guò)組合 bpoAutoCut or bpoChainPrint 兩個(gè)選項(xiàng)告訴打印機(jī)處于連續(xù)出紙態(tài)。
SDK 的文檔 http://download.csdn.net/source/1933623
SDK 安裝包 http://download.csdn.net/source/1933645
部署
需要安裝打印機(jī)驅(qū)動(dòng)、bPAC-SDK的重分發(fā)包(可使用官網(wǎng)提供的獨(dú)立重分發(fā)安裝包,或者使用SDK中提供的merge module合并到你自己的應(yīng)用安裝中)、你自己的終端應(yīng)用。
結(jié)語(yǔ)
Brother的設(shè)計(jì)比較巧妙,通過(guò)分離設(shè)計(jì)標(biāo)簽樣式、替換打印輸出兩步,為終端應(yīng)用的集成提供了極大的靈活。完全可以讓最終用戶使用P- touch Editor自己設(shè)計(jì)標(biāo)簽樣式,再由ISV的應(yīng)用在運(yùn)行時(shí)給其中l(wèi)abel barcode動(dòng)態(tài)賦值,即使樣式后來(lái)再修改只要指定的index控件還在,也不影響應(yīng)用程序的open settext等。與Godex的條碼打印機(jī)使用的專用的EZPL打印控制語(yǔ)言相比,brother的方案提高了靈活性,并大大降低了用戶的使用門檻。
?
下附delphi 實(shí)現(xiàn)的調(diào)用過(guò)程
?
? 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('模板文件不存在,請(qǐng)聯(lián)系系統(tǒng)管理員!');
?? 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;
總結(jié)
以上是生活随笔為你收集整理的Brother 打印机集成开发总结的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 强烈推荐:程序员接私活那点事
- 下一篇: 用xcode写java_xcode怎么写