條形碼打印機(jī)的打印是以熱為基礎(chǔ),以碳帶為打印介質(zhì)(或直接使用熱敏紙)完成打印。BarcodeX ActiveX控件 能產(chǎn)生幾乎所有類型的條形碼。它可以和數(shù)據(jù)源綁定,用于數(shù)據(jù)庫報告。條形碼可以導(dǎo)出為位圖,元文件,剪貼板等。
支持的條形碼格式有:
EAN-13、 EAN-8、EAN-2、EAN-5、UPC-A、UPC-E、Code39、Code39 Ext、Code93、 Code 128、EAN-128、ISSN、ISBN、Plessey、Code11、Code25、Code25 Int.、Codebar 甚至PDF417 2維條形碼。
BarcodeX ActiveX控件 能用于任何Windows應(yīng)用程序(比如 MS Word, MS Access, Visual Basic, VisualStudio .NET等),包括VB.NET運(yùn)用實(shí)例。
BarcodeX ActiveX控件的特點(diǎn):
2位Bit ActiveX Control (OCX); 能工作于VisualStudio.Net、ASP、VBScript等; 把條形碼導(dǎo)出到ASP網(wǎng)頁; 可選的位于條形碼下的文本行,支持Windows所有字體;
前臺和背景顏色可配置; 調(diào)整條形碼大; 旋轉(zhuǎn)條形碼; 把條形碼導(dǎo)出為BMP 或 EMF格式圖片;
支持的條形碼格式有:PDF-417、EAN-13、EAN-8、 EAN-5、EAN-2、UPC-A、UPC-E、Code39、Code39 Ext、Code 128、 EAN-128、ISSN、ISBN、Codebar、Code25、Inteleaved 25、Post 25、Code11、Code93、Plessey; 自動計算和添加校驗(yàn)位數(shù);
能工作于支持ActiveX的程序和開發(fā)環(huán)境如:Microsoft Office 97、Visual Studio、Visual C++、Visual Basic and Visual Basic for Applications (VBA)、J++, Visual FoxPro、 Access97、Word97、Excel、Works 4.5、FrontPage97/98、 Powerbuilder、Delphi;
不需要其他的DLL; 能把條形碼拷貝到剪貼板;
在VB里可把條形碼用做圖片對象; 安裝和卸載方便。
控件的注冊
(1)檢測控件是否注冊(方法不唯一)。
本例使用的是判斷注冊表中 HKEY_CLASSES_ROOT\TypeLib\ 是否包含barcodex.ocx的項(xiàng)。
如果注冊了barcodex.ocx控件,則會生成對應(yīng)的項(xiàng)。
HKEY_CLASSES_ROOT\TypeLib\{8E515444-86DF-11D3-A630-444553540001} 。
注:該項(xiàng)最后的 {8E515444-86DF-11D3-A630-444553540001} 為barcodex.ocx控件唯一GUID值。
(2)注冊ocx控件(提供三種方法)
、僬{(diào)用命令提示符。(barcodex.ocx必須在應(yīng)用程序的根目錄)
System.Diagnostics.Process.Start("regsvr32", "barcodex.ocx /s");進(jìn)行注冊。
、谡{(diào)用bat。(與①類似,未使用過)
在應(yīng)用程序的根目錄編輯好一個bat。命名為" install.bat ",內(nèi)容為“ regsvr32.exe barcodex.ocx ”。barcodex.ocx必須在應(yīng)用程序的根目錄。
再調(diào)用System.Diagnostics.Process.Start("regsvr32", "install.bat ");進(jìn)行注冊。
、壅{(diào)用ocx的注冊入口函數(shù)。(本例使用)
、瘛⑽募䦶(fù)制到" C:\\windows\ "目錄下(文件目錄是次要,筆者是考慮誤刪,才選擇此目錄。)
、、聲明調(diào)用的函數(shù)(需要引用 using System.Runtime.InteropServices; )
[DllImport("C:\\Windows\\barcodex.ocx")]
public static extern int DllRegisterServer();//注冊時用
[DllImport("C:\\Windows\\barcodex.ocx")]
public static extern int DllUnregisterServer();//取消注冊時用
Ⅲ、自定義的注冊方法!
public static bool DLLRegister()
{
int i = DllRegisterServer();
if (i >= 0)
{
return true;
}
else
{
return false;
}
}
控件的引用
(1)引用AxInterop.BARCODEXLib.dll和Interop.BARCODEXLib.dll文件。
(2)工具箱->所有windows窗體->右鍵 選擇項(xiàng)->選擇com組件 。
找到名稱為BarcodeX by Fath Software,路徑為c:\windows\barcodex.ocx 的項(xiàng),選中,添加。即可完成添加。
4、拖入條形碼控件到winform窗體中,設(shè)置Name為axBCX。
5、預(yù)覽一維碼。
(1)axBCX.BarcodeType=BARCODEXLib.bcxTypeEnum.bcxCode128;//設(shè)置條形碼類型,
(2)axBCX.Caption = "123456789";//要顯示的條形碼
(3)axBCX.Height=150;//條形碼的高度
(4)axBCX.Width=80;//條形碼的寬度
(5)axBCX.Title="條形碼的預(yù)覽";//條形碼的標(biāo)題
至此,即可完成Barcodex條形碼的預(yù)覽功能。
打印條形碼
(1)原理:將條形碼區(qū)域截取為image進(jìn)行打。▋煞N方法)。
、偈褂胊xBCX.Picture 屬性,即可獲取其對應(yīng)的image對象,但是此屬性需要[ComAliasName("stdole.IPictureDisp")](stdole)的支持,此為office擴(kuò)展,客戶機(jī)器不一定安裝,所以不建議使用。
、谑褂胊xBCX.CreateBMP();方法,將條形碼截取為bmp圖片,再進(jìn)行打印。
(2)打印實(shí)現(xiàn)。