UPC(Universal Product Code)码是最早大规模应用的条码,其特性是一种长度固定、连续性的条 码,目前主要在美国和加拿大使用,由于其应用范围广泛,故又被称万用条码。 UPC码仅可用来表示数字,故其字码集为数字0~9。UPC码共有A、B、C、D、E等五种版本。
- UPC E码又称UPC缩短码。
- UPC E码是UPC A码的简化型式,其编码方式是将UPC A码整体压缩成短码以方便使用,因此其编码形式须经由UPC A码来转换。
UPC E由6位数码与左右护线组成,无中间线。6位数字码的排列为3奇3偶,其排列方法取决于检查码的值。UPC-E码只用于国别码为0的商品。
UPC E码结构如下图:
- 左护线:为辅助码,不具任何意义,仅供列印时作为识别之用,逻辑型态为010101,其中0代表细白,1代表细黑。
- 右护线:同UPC A码,逻辑型态为101。
- 检查码:为UPC A码原形的检查码,其作用为一导入值,并不属於资料码的一部份。
- 资料码:扣除第一码固定为0外,UPC E实际参与编码的部份只有六码,其编码方式,视检查码的值来决定。
二、实现
public ActionResult UPCE()
{
EncodingOptions options = new EncodingOptions();
options.PureBarcode = false;
options.GS1Format = false;
options.Width = ;
options.Height = ;
options.Margin = ; BarcodeWriter writer = new BarcodeWriter();
writer.Format = BarcodeFormat.UPC_E;
writer.Options = options; //如需设置图片为其它颜色,使用此段代码
//BitmapRenderer renderer = new BitmapRenderer();
//renderer.Foreground = Color.Black;
//renderer.Background = Color.White;
//writer.Renderer = renderer; Bitmap bmp = writer.Write("");
MemoryStream ms = new MemoryStream();
bmp.Save(ms, ImageFormat.Png);
ms.Flush();
ms.Position = ;
return File(ms, "application/x-png"); //Stream sm = BarcodeHelper.UPCE(new UPCEOptions("00123457"));
//return File(sm, "application/x-png");
}
结果图片如下:
三、解码