翻譯|使用教程|編輯:黃竹雯|2019-01-16 14:06:21.000|閱讀 368 次
概述:本系列教程會解答您在使用條形碼生成控件TBarCode SDK產品時遇到的絕大部分疑惑。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
TBarCode SDK是一款可以在任意應用程序和打印機下生成和打印所有條碼的條碼軟件組件。TBarCode SDK對于Microsoft Office用戶以及軟件開發者提供條碼打印。使用此款條碼軟件組件您可以以完美效果生成和打印所有用于工業和商業條碼符號。
在部署ASP.NET項目到您的IIS Web服務器之后,會提示System.BadImageFormatException(嘗試加載格式不正確的程序),但在開發過程中沒有這樣的問題。
原因:Visual Studio是32位應用程序,開發服務器通常以32位進程運行。因此32位版本的TECIT.TBarCode.DLL現在作為./bin文件夾中的一部分已嵌入到您的項目中。但是您的IIS以64位進程運行工作線程,所以出現加載錯誤。
使用C:\ Program Files \ Common Files \ TEC-IT \ TBarCode \ [version]文件夾中的版本(這是x64版本)交換目標系統上的../bin/TECIT.TBarCode.dll文件。
從bin文件夾中完全刪除TECIT.TBarCode.dll。在這種情況下,將加載來自全局程序集緩存(GAC)的TECIT.TBarCode.dll。公共語言運行庫將自動加載正確的版本,因為GAC同時包含32和64位版本。這種方法的先決條件是必須在目標服務器上執行TBarCode SDK的設置,安裝程序會為您安裝GAC中的DLL文件。
如果在熱敏標簽打印機上從瀏覽器中打印條形碼,則通常會遇到質量問題,比如條碼的寬度不相等,不適合輸出分辨率等。為了避免條碼寬度產生像差,您必須在96 dpi瀏覽器和203 dpi打印機分辨率下找到完全匹配的像素。對于線性條形碼,按下列所示解決方案將會創建一個像素對齊203 dpi光柵和具有良好可讀性的條形碼:
以下ASP.NET C#代碼顯示了如何使用TBarCode .NET實現此優化:
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 !!!
如果收到此錯誤消息,則需要更改IUSR_MACHINE注冊表中類型庫條目的用戶帳戶的讀取權限。請按照以下步驟操作:
將此代碼插入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
當生成條形碼作為圖像流時,條形(或空格)應始終在生成的位圖的像素網格上對齊。原則上,在600-1200 dpi的激光打印機上打印96 dpi圖像時不會有任何問題。在將96 dpi轉換為600/1200 dpi時可能會出現一些很小的打印容差。
注意:如果瀏覽器中沒有任何縮放圖像,則始終以96 dpi顯示。具有1個像素的細條通常為1/96英寸寬。
將條形碼調整到特定尺寸或將打印分辨率調整為300 dpi或更低時情況可能會更復雜。在這種情況下,您應將條形碼模塊寬度調整為打印機的點寬。
未完待續~
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn