(zxing.net)二维码PDF417的简介、实现与解码
一、简介
二维码PDF417是一种堆叠式二维条码。PDF417条码是由美国SYMBOL公司发明的,PDF(Portable Data File)意思是“便携数据文件”。组成条码的每一个条码字符由4个条和4个空共17个模块构成,故称为PDF417条码。 PDF417条码需要有417解码功能的条码阅读器才能识别。PDF417条码最大的优势在于其庞大的数据容量和极强的纠错能力。
PDF417条码是一种高密度、高信息含量的便携式数据文件,是实现证件及卡片等大容量、高可靠性信息自动存储、携带并可用机器自动识读的理想手段。
PDF417条码可表示数字、字母或二进制数据,也可表示汉字。一个PDF417条码最多可容纳1850 个字符或1108 个字节的二进制数据,如果只表示数字则可容纳2710 个数字。PDF417的纠错能力分为9级,级别越高,纠正能力越强。由于这种纠错功能,使得污损的PDF417条码也可以正确读出。我国已制定了PDF417码的国家标准。
二维码PDF417可应用在:证件管理、执照年检、报表管理、机电产品的生产和组配线、银行票据管理及行包、货物的运输和邮递。
二、实现
public ActionResult PDF_417() { PDF417EncodingOptions options = new PDF417EncodingOptions(); options.AspectRatio = PDF417AspectRatio.AUTO; options.Compact = false; options.Compaction = Compaction.AUTO; options.DisableECI = true; options.ErrorCorrection = PDF417ErrorCorrectionLevel.AUTO; options.PureBarcode = false; options.GS1Format = false; options.Width = 280; options.Height = 75; options.Margin = 10; BarcodeWriter writer = new BarcodeWriter(); writer.Format = BarcodeFormat.PDF_417; writer.Options = options; //如需设置图片为其它颜色,使用此段代码 //BitmapRenderer renderer = new BitmapRenderer(); //renderer.Foreground = Color.Black; //renderer.Background = Color.White; //writer.Renderer = renderer; Bitmap bmp = writer.Write("This is a MaxiCode by TEC-IT"); MemoryStream ms = new MemoryStream(); bmp.Save(ms, ImageFormat.Png); ms.Flush(); ms.Position = 0; return File(ms, "application/x-png"); }
测试图像如下:
三、解码