水晶报表(CrystalReport)模板绘制二维码

发布时间 2024-01-12 17:52:37作者: fulllove

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