条形码控件TBarCode SDK系列教程一(TBarCode .NET篇)

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

一、如何以4位/像素格式保存条形码?

首先以默认的Pixel格式生成条形码(Format32bppArgb):

System.Drawing.Size optimalSize = myBarcode.CalculateOptimalBitmapSize(null, 2, 2);
myBarcode.BoundingRectangle = new Rectangle(0, 0, optimalSize.Width, optimalSize.Height);
Bitmap barcodeImage = myBarcode.DrawBitmap();复制代码

然后将其转换为你需要的Pixel格式的位图:

Bitmap converted = barcodeImage.Clone (new Rectangle(0, 0, barcodeImage.Width, barcodeImage.Height), PixelFormat.Format4bppIndexed);
// MessageBox.Show(converted.PixelFormat.ToString());复制代码
二、如何编码二进制数据(二维码)

即使你对二进制数据使用转义序列,编码器也将使用Codepage Conversion(代码页转换)(例如:\x88根据需要在Data Matrix中输出不同的值)。

解决方案:

  • 关闭代码页转换(使用编码模式LowByte)
  • 强制二进制编码模式(如果可用)(参见PDF417编码模式,Data Matrix EnforceBinaryEncoding)
三、部署Web应用程序后出现错误的图像格式

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

原因:Visual Studio是一个32位应用程序,开发服务器通常以32位进程运行。因此,32位版本的TECIT.TBarCode.DLL已嵌入到你的项目中,在./bin文件夹中。但是你的IIS以64位进程运行,所以会加载错误的格式。

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

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

方法2:让GAC来完成这个工作

从bin文件夹中完全删除TECIT.TBarCode.dll。在这种情况下,将加载来自全局程序集缓存(GAC)的TECIT.TBarCode.dll。公共语言运行库自动加载正确的版本,因为GAC同时包含32和64位版本。

前置条件:必须在目标服务器上执行TBarCode SDK的设置,安装程序会为你安装GAC中的DLL。

如果你没有立即看到效果,请重新启动应用程序池或在命令行上执行“iisreset”(注意,这会重新启动ALL,会话将丢失)。

四、如何创建可读Code 39位图?

以下示例代码可在ASP.NET中生成Code 39位图。

//Code 39
Barcode barcode = new Barcode();
barcode.Data = "10030000007611107871900002199908";
barcode.BarcodeType = BarcodeType.Code39;

// with dpi = 100 we get 1 Pixel = 0.254 mms
barcode.Dpi = 100;

// bar code size should adapt to bounding rectangle
barcode.SizeMode = SizeMode.FitToBoundingRectangle;

// set default size of symbol (define the default height)
barcode.BoundingRectangle = new Rectangle(0, 0, 254, 100 /* = 1 inch */);
                
// now calculate optimal bitmap size for the bar code
Size optimalSize = barcode.CalculateOptimalBitmapSize(null, 1, 1);

// update rectangle to optimized size
barcode.BoundingRectangle  = new Rectangle(0, 0, optimalSize.Width, optimalSize.Height);
barcode.Draw(filename, ImageType.Jpg);复制代码


转载于:https://juejin.im/post/5c32bab46fb9a049b41c9f64

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值