水晶报表(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、然后就可以啦,最后附上完整的图可参考


浙公网安备 33010602011771号