简介:
常用微软提供的ReportViewer控件生成报表,我在工作中遇到新的需求:需要将动态生成的二维码显示在RDLC报表文件里面。动态生成的二维码保存在内存中。可以参考stackoverflow。
步骤一:将图像转换为Base64编码
private static string ConvertImageToBase64(Image image, ImageFormat format)
{
byte[] imageArray;
using (System.IO.MemoryStream imageStream = new System.IO.MemoryStream())
{
image.Save(imageStream, format);
imageArray = new byte[imageStream.Length];
imageStream.Seek(0, System.IO.SeekOrigin.Begin);
imageStream.Read(imageArray, 0, imageStream.Length);
}
return Convert.ToBase64String(imageArray);
}
步骤二:将图像和MIME类型传递给报表
reportParams[0] = new ReportParameter("ReportLogo", base64Logo);
reportParams[1] = new ReportParameter("ReportLogoMimeType", "image/png");
_reportViewer.LocalReport.SetParameters(reportParams);
步骤三:在报告中,在图像上设置了以下属性(没有引号)
在RDLC文件中插入图像,设置属性为数据库。
- MIMEType: "
=Parameters!ReportLogoMimeType.Value
" - Value: "
=System.Convert.FromBase64String(Parameters!ReportLogo.Value)
"
注意:ReportLogoMimeType和ReportLogo需要自行添加参数。
结语
关于二维码那一方面,如果有需要的可以留言,再出教程。