C# 在某些情况下,如何以编程方式将水印添加到我的RDLC报告中?

C# 在某些情况下,如何以编程方式将水印添加到我的RDLC报告中?,c#,asp.net,reportviewer,rdlc,watermark,C#,Asp.net,Reportviewer,Rdlc,Watermark,如何在某些条件下(基于传递的参数)以编程方式向我的RDLC报告添加水印 overTimeReport.ReportPath=“Report\\timeout.rdlc”; overTimeReport.DataSources.Clear(); overTimeReport.Refresh(); //----生成参数列表---- List paramList=新列表(); ReportParameter param1=新的ReportParameter(“检查状态”,检查状态); paramLi

如何在某些条件下(基于传递的参数)以编程方式向我的RDLC报告添加水印


overTimeReport.ReportPath=“Report\\timeout.rdlc”;
overTimeReport.DataSources.Clear();
overTimeReport.Refresh();
//----生成参数列表----
List paramList=新列表();
ReportParameter param1=新的ReportParameter(“检查状态”,检查状态);
paramList.Add(param1);
overTimeReport.SetParameters(参数列表);
ReportDataSource datasource=新的ReportDataSource();
数据源=新报告数据源(“DS加班”,dt);

将报告正文的背景图像设置为水印图像参数:

=Parameters!watermark.Value
根据您的“条件”设置条件水印参数(我假设您的条件将显示水印或不显示水印):

不要忘记将水印参数添加到参数列表中,并在报告中启用外部图像:

paramList.Add(watermarkParameter);

overTimeReport.EnableExternalImages = true;

我尝试了上面提到的解决方案,但在呈现PDF时图像不会显示给我。您是否有任何错误消息?检查您的输出窗口。。。以上代码适用于各种报告中。在呈现pdf时不会出现水印错误<代码>ReportParameter watermarkParameter=新的ReportParameter(“水印”,新Uri(@“Reports\draft.jpg”,UriKind.Relative).ToString());paramList.Add(水印参数);overTimeReport.EnableExternalImages=true我使用以下方法呈现报表:
private void AddReportToResponse(LocalReport报表){string mimeType;字符串编码;字符串扩展;string[]streams=new string[100];Warning[]warnings=new Warning[100];byte[]pdfStream=report.render(“PDF”,是““,out-mimeType,out-encoding,out-extension,out-streams,out-warnings);Response.Clear();Response.ContentType=mimeType;Response.AddHeader(“内容处置”,“附件;文件名=应用程序”。+扩展名);Response.BinaryWrite(pdfStream);Response.End();}
我想起来的问题很少。水印图像的大小是多少?你能试试其他的小图片吗?您是否尝试查看报告的预览或将其呈现到文件中
filestreamnewfile=newfilestream(“您的PDF文件名”,FileMode.Create);Write(pdfStream,0,bytes.Length);newFile.Close()检查图像路径-如果图像确实存在:
字符串imagePath=Uri(@“Reports\draft.jpg”,UriKind.Relative).ToString()
ReportParameter watermarkParameter = new ReportParameter("watermark", "", false);
if (showWatermark) 
     watermarkParameter = new ReportParameter("watermark", Uri(watermarkPath).ToString(), false);
paramList.Add(watermarkParameter);

overTimeReport.EnableExternalImages = true;