翻譯|使用教程|編輯:黃竹雯|2019-01-16 14:06:21.000|閱讀 368 次
概述:本系列教程會(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)。
在部署ASP.NET項(xiàng)目到您的IIS Web服務(wù)器之后,會(huì)提示System.BadImageFormatException(嘗試加載格式不正確的程序),但在開(kāi)發(fā)過(guò)程中沒(méi)有這樣的問(wèn)題。
原因:Visual Studio是32位應(yīng)用程序,開(kāi)發(fā)服務(wù)器通常以32位進(jìn)程運(yùn)行。因此32位版本的TECIT.TBarCode.DLL現(xiàn)在作為./bin文件夾中的一部分已嵌入到您的項(xiàng)目中。但是您的IIS以64位進(jìn)程運(yùn)行工作線程,所以出現(xiàn)加載錯(cuò)誤。
使用C:\ Program Files \ Common Files \ TEC-IT \ TBarCode \ [version]文件夾中的版本(這是x64版本)交換目標(biāo)系統(tǒng)上的../bin/TECIT.TBarCode.dll文件。
從bin文件夾中完全刪除TECIT.TBarCode.dll。在這種情況下,將加載來(lái)自全局程序集緩存(GAC)的TECIT.TBarCode.dll。公共語(yǔ)言運(yùn)行庫(kù)將自動(dòng)加載正確的版本,因?yàn)镚AC同時(shí)包含32和64位版本。這種方法的先決條件是必須在目標(biāo)服務(wù)器上執(zhí)行TBarCode SDK的設(shè)置,安裝程序會(huì)為您安裝GAC中的DLL文件。
如果在熱敏標(biāo)簽打印機(jī)上從瀏覽器中打印條形碼,則通常會(huì)遇到質(zhì)量問(wèn)題,比如條碼的寬度不相等,不適合輸出分辨率等。為了避免條碼寬度產(chǎn)生像差,您必須在96 dpi瀏覽器和203 dpi打印機(jī)分辨率下找到完全匹配的像素。對(duì)于線性條形碼,按下列所示解決方案將會(huì)創(chuàng)建一個(gè)像素對(duì)齊203 dpi光柵和具有良好可讀性的條形碼:
以下ASP.NET C#代碼顯示了如何使用TBarCode .NET實(shí)現(xiàn)此優(yōu)化:
double dpi = 203; // printer resolution (8 lines/mm) int numberOfPixels = 3; // number of pixels for 1 module (= 0.375 mm) double moduleWidth = numberOfPixels * 25.4 / dpi; // module width in mm BCControl.Barcode.Dpi = dpi; // 1 bitmap pixel = 1 module BCControl.Barcode.SizeMode = TECIT.TBarCode.SizeMode.CustomModuleWidth; BCControl.Barcode.ModuleWidth = (float) (moduleWidth + 0.001); BCControl.Barcode.AdjustModuleWidthToPixelRaster = true; BCControl.Width = new Unit(96 * 4, UnitType.Pixel); // always a multiple of 96 !!!
如果收到此錯(cuò)誤消息,則需要更改IUSR_MACHINE注冊(cè)表中類型庫(kù)條目的用戶帳戶的讀取權(quán)限。請(qǐng)按照以下步驟操作:
將此代碼插入Page_Load事件:
Me.BarcodeControl1.Barcode.BarcodeType = BarcodeType.Pdf417 Me.BarcodeControl1.Barcode.Data = data ' TBarCode V7, V8: Dim horizModules As Integer Dim verticRows As Integer horizModules = Me.BarcodeControl1.Barcode.CalculateXColumnsOf2DBarcode() verticRows = Me.BarcodeControl1.Barcode.CalculateNumberOfRows() Me.BarcodeControl1.Barcode.SizeMode = SizeMode.FitToBoundingRectangle ' for the dpi use at least 3 times the screen res (or >= 300 dpi) Me.BarcodeControl1.Barcode.Dpi = 96 * 3 Me.BarcodeControl1.Width = New Unit(horizModules) ' for the height use a multiplier of 3 - 5 Me.BarcodeControl1.Height = New Unit(verticRows * 5) End Sub
當(dāng)生成條形碼作為圖像流時(shí),條形(或空格)應(yīng)始終在生成的位圖的像素網(wǎng)格上對(duì)齊。原則上,在600-1200 dpi的激光打印機(jī)上打印96 dpi圖像時(shí)不會(huì)有任何問(wèn)題。在將96 dpi轉(zhuǎn)換為600/1200 dpi時(shí)可能會(huì)出現(xiàn)一些很小的打印容差。
注意:如果瀏覽器中沒(méi)有任何縮放圖像,則始終以96 dpi顯示。具有1個(gè)像素的細(xì)條通常為1/96英寸寬。
將條形碼調(diào)整到特定尺寸或?qū)⒋?印分辨率調(diào)整為300 dpi或更低時(shí)情況可能會(huì)更復(fù)雜。在這種情況下,您應(yīng)將條形碼模塊寬度調(diào)整為打印機(jī)的點(diǎn)寬。
未完待續(xù)~
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn