翻譯|使用教程|編輯:黃竹雯|2018-10-16 13:18:05.000|閱讀 380 次
概述:本系列教程會(huì)解答您在使用條形碼生成控件TBarCode SDK產(chǎn)品時(shí)遇到的絕大部分疑惑。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷售中 >>
相關(guān)鏈接:
TBarCode SDK是一款可以在任意應(yīng)用程序和打印機(jī)下生成和打印所有條碼的條碼軟件組件。TBarCode SDK對(duì)于Microsoft® Office 用戶以及軟件開(kāi)發(fā)者提供條碼打印。使用此款條碼軟件組件您可以以完美效果生成和打印所有用于工業(yè)和商業(yè)條碼符號(hào)。
下面我們將向您展示如何在數(shù)據(jù)庫(kù)啟動(dòng)時(shí)獲得許可(TBarCode OCX V11的示例)。使用以下功能創(chuàng)建新模塊(在Microsoft VBA編輯器中):
Public Function LicenseTBarCode() Dim TB As New TBarCode11 TB.LicenseMe "Mem:Licensee", eLicKindDeveloper, 1, "Key", TBarCode11Lib.eLicProd1D Set TB = Nothing End Function
使用以下設(shè)置創(chuàng)建名為“Autoexec”的新Macro:
Action = RunCode Functionname = License TBarCode()
注:不要忘記在菜單Tools - References中包含對(duì)ActiveX Control的類型庫(kù)的引用(否則不能使用枚舉)。我們建議在項(xiàng)目屬性窗口中使用密碼保護(hù)您的VBA代碼。
方法1
第一種方法使用預(yù)設(shè)(自定義)模塊寬度,設(shè)置DPI,然后計(jì)算符號(hào)的總寬度。該原理也適用于其他打印機(jī)。
OCX方法BCWidthHdc2可用于計(jì)算條形碼的寬度。如果已設(shè)置模塊寬度,請(qǐng)使用[in] nWidth的虛擬值。如果以u(píng)nit = mm計(jì)算寬度,則將其轉(zhuǎn)換為Pixels,然后將其轉(zhuǎn)換為SaveImage函數(shù)。高度有類似的功能 - 但高度只需要計(jì)算2D條形碼。
注意:當(dāng)您將模塊寬度設(shè)置為精確到0.3125毫米或0.0123英寸時(shí),您在812.8 dpi機(jī)器的打印光柵中是100%。這是推薦值之一。如果已啟用opt resolution標(biāo)志,則模塊寬度將更改為打印柵格中的下一個(gè)(較低)像素邊界,因此會(huì)“optimized”。必須相應(yīng)地設(shè)置Dpi以進(jìn)行此優(yōu)化。
示例代碼:
Dim widthPx As Long Dim heightPx As Long Dim heightMM As Double TBarCode111.Dpi = 812.8 TBarCode111.SizeMode = eSizeMode_CustomModuleWidth TBarCode111.ModuleWidth = "312.5" heightPx = 500 heightMM = heightPx * (25.4 / TBarCode111.Dpi) widthPx = TBarCode111.BCWidthHdc2(0, 1000, heightMM * 1000, eMUPixel) TBarCode111.SaveImage "c:\temp\test2.tif", eIMTif, widthPx, heightPx, 812.8, 812.8
方法2
使用第二種更簡(jiǎn)單的方法,模塊寬度未明確設(shè)置。相反,傳遞給GetOptimalBitmapSize(OCX API)函數(shù)的縮放因子控制模塊寬度。如果您使用它,請(qǐng)不要在API中設(shè)置自定義模塊寬度和/或最佳分辨率。該函數(shù)執(zhí)行一些額外的放大(基于dpi),在調(diào)用函數(shù)時(shí)應(yīng)該用DPI = 0關(guān)閉。
因?yàn)槲覀冎来蛴C(jī)的DPI,所以我們也知道像素(打印機(jī)點(diǎn))尺寸。我們還知道一個(gè)模塊應(yīng)始終是一個(gè)打印機(jī)點(diǎn)的整數(shù)倍。我們必須考慮通常一個(gè)模塊根本不應(yīng)小于0.190毫米(但取決于條形碼類型)。然后,您需要做的就是將ScaleX = ModuleWidth / PixelSize因子(= 8,9,10,...)傳遞給GetOptimalBitmapSize函數(shù),并使用SaveImage返回的值。
模塊寬度:0.0123英寸最佳值為10像素,812.8 dpi。因此,GetOptimalBitmapSize函數(shù)的縮放因子為10。
示例代碼:
Dim width As Long Dim height As Long width = 1 height = 500 TBarCode111.Dpi = 0 'turn off additional dpi/96 scaling TBarCode111.GetOptimalBitmapSize 10, 10, width, height TBarCode111.SaveImage "c:\temp\test.tif", eIMTif, width, height, 812.8, 812.8
請(qǐng)使用此代碼段作為起點(diǎn):
' set barcode type = PDF417 Me.bc.Object.BarCode = 55 ' set size mode to CustomModuleWidth Me.bc.Object.SizeMode = 1 ' now adjust module width to 0.254 mms Me.bc.Object.ModuleWidth = "254" ' set number of data columns ' optional parameter, but required to get constant width Me.bc.Object.PDF417.Columns = 5 ' adjust row height to 3 times of the module width Me.bc.Object.PDF417.RowHeight = 254 * 3 Me.bc.Object.Text = "my data"
請(qǐng)使用此代碼段作為起點(diǎn):
Public Function CalculateMod10(data As String) As String Dim tbc As TBarCode11Lib.TBarCode11 Set tbc = CreateObject("TBarCode11.TBarCode11") Dim cd As String cd = tbc.CalculateCheckdigits(eCDMod10, data) CalculateMod10 = Left(cd, 1) End Function
福利時(shí)間:點(diǎn)擊此處>>>>>>獲得TBarCode SDK的完整應(yīng)用示例。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn