在Web API Core 3.1的RDLC报告中动态显示图像

问题描述

我被卡住了,请帮助我在RDLC报告Web API core3.1应用程序中动态绑定图像, 我将图像设置为“外部”图像,但是当我绑定图像时出现错误“尚未为此报告设置EnableExternalImages属性。”请帮助我。报告会很好。

Dictionary<string,string> parameters = new Dictionary<string,string>();
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
        Encoding.GetEncoding("windows-1252");
        //LocalReport report = new LocalReport("Report3.rdlc");
        LocalReport report = new LocalReport("Report3.rdlc");
        parameters.Add("Image",@"file:///E:\\DemoRDLC2\\DemoRDLC2\\DemoRDLC2/FileImage/Car.PNG");
        var result = report.Execute(GetRenderType("pdf"),1,parameters);
        return result.MainStream;

enter image description here

解决方法

我对其进行了测试,并且可以正常工作,这是我的代码:

首先,将图像转换为base64string

string paramValue = "";
using (var b = new Bitmap(@"YOUR IMAGE")){
     using (var ms = new MemoryStream()){
         b.Save(ms,ImageFormat.Bmp);
         paramValue = Convert.ToBase64String(ms.ToArray());
       }
    }

然后将Base64String值添加到您的参数字典中:

parameters.Add("Key1","value1");
parameters.Add("Key2","value2");
parameters.Add("image",paramValue);

RDLC图像属性: enter image description here

PDF文件结果:

enter image description here

,

我刚收到。我使用 Microsoft.ReportViewer.NetCore

图片必须是 tif 或 eml。我用过 tif。

阅读此链接: https://github.com/lkosson/reportviewercore#supported-rendering-formats

这是在新页面中打印的代码,来自github中的示例:

<button className="btn btn-info dropdown-toggle" type="button" id="dropdownMenuButton" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
        Address
      </button>
      <ul className="dropdown-menu" aria-labelledby="dropdownMenuButton">
        <li><a className="dropdown-item" href="#">Address1</a></li>
        <li><a className="dropdown-item" href="#">Address2</a></li>
      </ul>
    </div>

要下载文件,请执行以下操作: return File(rpt,mimeType,FileName + extension);

希望能帮到你

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...