1.数字生成imgage条形码图像
使用zxing框架,简单易上手,包括二维码,条形码生成。
2.图像转换为Base64编码
代码如下
/// <summary>
/// 生成一维条形码
/// </summary>
/// <param name="text">内容</param>
/// <param name="width">宽度</param>
/// <param name="height">高度</param>
/// <returns></returns>
public static string GenerateBarCode(string text, int width, int height)
{
byte[] imageArray;
//System.IO.MemoryStream MStream = new System.IO.MemoryStream();
BarcodeWriter writer = new BarcodeWriter();
//使用ITF 格式,不能被现在常用的支付宝、微信扫出来
//如果想生成可识别的可以使用 CODE_128 格式
//writer.Format = BarcodeFormat.ITF;
writer.Format = BarcodeFormat.CODE_39;
EncodingOptions options = new EncodingOptions()
{
Width = width,
Height = height,
Margin = 2
};
writer.Options = options;
Image map = writer.Write(text);
using (System.IO.MemoryStream MStream = new System.IO.MemoryStream())
{
map.Save(MStream, ImageFormat.Png);
imageArray = new byte[MStream.Length];
MStream.Seek(0, System.IO.SeekOrigin.Begin);
MStream.Read(imageArray, 0,(int)MStream.Length);
}
return Convert.ToBase64String(imageArray);
}
3.rdlc文件调用64位编码,显示在页面上
3.1 将64位编码作为参数传到报表页面上,使用url拼接。注意:UED 进行伪url encode 的实现 , 将+ 号进行%2B 的编码。 因为目前JS 中没有现成的函数,这里通过replace(/\+/g, '%2B') 进行转化。
3.2 在RDLC文件中插入图像,设置属性为数据库。