条形码控件TBarCode SDK系列教程十二(网络应用程序问题解答)

TBarCode SDK是一款可以在任意应用程序和打印机下生成和打印所有条码的条码软件组件。TBarCode SDK对于Microsoft Office用户以及软件开发者提供条码打印。使用此款条码软件组件您可以以完美效果生成和打印所有用于工业和商业条码符号。


部署Web应用程序后出现错误的图像格式异常

在部署ASP.NET项目到您的IIS Web服务器之后,会提示System.BadImageFormatException(尝试加载格式不正确的程序),但在开发过程中没有这样的问题。

原因:Visual Studio是32位应用程序,开发服务器通常以32位进程运行。因此32位版本的TECIT.TBarCode.DLL现在作为./bin文件夹中的一部分已嵌入到您的项目中。但是您的IIS以64位进程运行工作线程,所以出现加载错误。

方法一:部署64位版本的程序集

使用C:\ Program Files \ Common Files \ TEC-IT \ TBarCode \ [version]文件夹中的版本(这是x64版本)交换目标系统上的../bin/TECIT.TBarCode.dll文件。

方法二:让GAC开始工作

从bin文件夹中完全删除TECIT.TBarCode.dll。在这种情况下,将加载来自全局程序集缓存(GAC)的TECIT.TBarCode.dll。公共语言运行库将自动加载正确的版本,因为GAC同时包含32和64位版本。这种方法的先决条件是必须在目标服务器上执行TBarCode SDK的设置,安装程序会为您安装GAC中的DLL文件。


提高ASP.NET中标签打印机的条码质量

如果在热敏标签打印机上从浏览器中打印条形码,则通常会遇到质量问题,比如条码的宽度不相等,不适合输出分辨率等。为了避免条码宽度产生像差,您必须在96 dpi浏览器和203 dpi打印机分辨率下找到完全匹配的像素。对于线性条形码,按下列所示解决方案将会创建一个像素对齐203 dpi光栅和具有良好可读性的条形码:

  • 位图创建:使用203 dpi和优化的模块宽度(2或3个像素)创建条形码位图。通过根据需要添加空白区域,使整个位图精确地为3或4英寸宽(3 * 203像素或4 * 203像素)。
  • 位图缩放:根据您在创建位图期间选择的内容,在浏览器中显示宽度正好为3或4英寸(3 * 203像素或4 * 203像素)的条形码图像。

以下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 !!!

ASP: Library Not Registered

如果收到此错误消息,则需要更改IUSR_MACHINE注册表中类型库条目的用户帐户的读取权限。请按照以下步骤操作:

  1. 打开regedit或RegEdt32.exe。
  2. 选择HKEY_CLASSES_ROOT。
  3. TBarCode OCX V8:搜索类型库UUID {07EC89D3-07F6-4B94-8A6A-C2347DB5C9EC}。
  4. TBarCode OCX V9:搜索类型库UUID {E06A2F00-D769-46FE-B2D6-E795C0CEE76E}。
  5. TBarCode OCX V10:搜索类型库UUID {132760F3-28BE-4E8A-B12B-12810EAA1EA3}。
  6. 右键单击registry entry,然后从下拉菜单中选择Permissions,或者也可以Edit->Permission。
  7. 在下一个对话框中,设置IUSR_MachineName或EveryOne帐户的读取权限。

如何在VB ASP.NET中生成像素优化的PDF417

将此代码插入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

Web应用程序中的条形码优化

当生成条形码作为图像流时,条形(或空格)应始终在生成的位图的像素网格上对齐。原则上,在600-1200 dpi的激光打印机上打印96 dpi图像时不会有任何问题。在将96 dpi转换为600/1200 dpi时可能会出现一些很小的打印容差。

注意:如果浏览器中没有任何缩放图像,则始终以96 dpi显示。具有1个像素的细条通常为1/96英寸宽。

将条形码调整到特定尺寸或将打印分辨率调整为300 dpi或更低时情况可能会更复杂。在这种情况下,您应将条形码模块宽度调整为打印机的点宽。


未完待续~

猜你喜欢

转载自blog.csdn.net/ymy_666666/article/details/86506858