在 ASP.NET 中以 PDF 格式呈现 SSRS 报告

Render SSRS report in PDF format in ASP.NET

我在服务器上部署了一些 SSRS 报告。现在我正在从我的 ASP.NET 应用程序访问这些报告。经过一些研究,我发现 ReportViewer 的默认打印按钮在 Chrome 或除 Internet Explorer 之外的任何 Web 浏览器中都不可见。所以我只想以 PDF 格式呈现报告,以便用户可以在不保存文件的情况下打印出 PDF 格式。这是我正在使用的代码片段:

IReportServerCredentials irsc = DBConnection.NetworkCredentials();
ReportViewer1.ServerReport.ReportServerCredentials = irsc;
List<ReportParameter> list = new List<ReportParameter>();
list.Add(new ReportParameter("ref_no", refNo));
ReportViewer1.ServerReport.SetParameters(list);
ReportViewer1.ServerReport.Render("PDF");
ReportViewer1.ServerReport.Refresh();

但是它不起作用。报告正在呈现,但不是 PDF 格式。如果有人打印出来,所有字段(如 Tablix、TextBox)的对齐方式都不会正确对齐。有人知道我该怎么做吗?

幸运的是,经过多次尝试,找到了解决办法。这就是我所做的:

IReportServerCredentials irsc = DBConnection.NetworkCredentials();
ReportViewer1.ServerReport.ReportServerCredentials = irsc;

List<ReportParameter> list = new List<ReportParameter>();
list.Add(new ReportParameter("ref_no", refNo));
ReportViewer1.ServerReport.SetParameters(list);
byte[] data = ReportViewer1.ServerReport.Render("pdf");
Response.Clear();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Disposition", "inline;filename=Manifest_Print.pdf");
Response.BinaryWrite(data);

它对我有用。