水晶报表(CrystalReport)模板绘制二维码
1、新建一个数据集,添加DataTable表增加一个二维码字段,点击字段右键属性将类型改为Byte[]类型;
2、将二维码赋值生成图片
/// <summary> /// 二维码生成函数 /// </summary> /// <param name="data">二维码值:比如:111111</param> /// <returns></returns> private Bitmap GenerateQRCode(string data) { BarcodeWriter writer = new BarcodeWriter(); writer.Format = BarcodeFormat.QR_CODE; EncodingOptions options = new EncodingOptions() { Width = 300, Height = 300 }; // 设置二维码尺寸 writer.Options = options; Bitmap qrCodeBitmap = writer.Write(data); // 生成二维码图片 return qrCodeBitmap; }
3、将绘制出来的图片bitmap类型转byte[]类型赋值给DataTable
/// <summary> /// 将bitmap类型转byte[] /// </summary> /// <param name="bitmap"></param> /// <returns></returns> public static byte[] BitmapToGrayByte(Bitmap bitmap) { byte[] bytes = null; try { Bitmap b = new Bitmap(bitmap); MemoryStream ms = new MemoryStream(); b.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp); bytes = ms.GetBuffer(); //byte[] bytes= ms.ToArray(); 这两句都可以,至于区别么,下面有解释 ms.Close(); } catch (Exception ex) { LogWrite.AddLgoToTXT("BitmapToGrayByte异常错误:" + ex.Message); } return bytes; }
4、然后就可以啦,最后附上完整的图可参考