2015-05-01 99 views
0

我在服務器上部署了部分SSRS報告。現在我正在從ASP.NET應用程序訪問這些報告。經過一番研究後,我發現ReportViewer的默認打印按鈕在Chrome或除IE瀏覽器以外的任何Web瀏覽器中都不可見。所以我想要以PDF格式呈現報告,這樣用戶就可以在不保存文件的情況下打印出PDF格式的文件。這是我使用的代碼片段:在ASP.NET中呈現PDF格式的SSRS報告

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的對齊方式都沒有正確對齊。有誰知道我該怎麼做?

+0

請編輯你的問題,並更詳細地解釋「不工作」。 – usr2564301

+0

@Jongware,更詳細地解釋了這個問題。請現在看看,讓我知道如果仍然不清楚。謝謝你的關心。 – Vivek

回答

2

幸運的是,經過這麼多的嘗試,找到了解決方案。這是我所做的:

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); 

它對我很有用。

+0

如果工作,你可以繼續,並將自己的答案標記爲正確答案:)。 –

+0

是的,它爲我工作。更新狀態 – Vivek