ReportViewer呈现一个空PDF(只有一个白页)
本文关键字:PDF 有一个 白页 一个 ReportViewer | 更新日期: 2023-09-27 18:18:46
我有一个Asp。. Net MVC 4项目,我正在使用ReportViewer生成一些报告。
因为在MVC中,使用Chrome和Firefox与ReportViewer的兼容性很低或根本没有兼容性,所以我的方法是在PDF流中呈现ReportViewer,然后简单地返回流,如下所示:
// using Microsoft.ReportViewer.WebForms.dll [10.0.0.0].
using (var viewer = new ReportViewer())
using (var bc = new MyBusinessClass())
{
viewer.LocalReport.ReportEmbeddedResource = @"MyEmbeddedName";
var dsobj = bc.GetData();
var ds = new ReportDataSource("DsName", dsobj);
var ps = new ReportParameterCollection();
ps.Add(new ReportParameter("ParameterName", DateTime.Now));
viewer.LocalReport.DataSources.Add(ds);
viewer.LocalReport.SetParameters(ps);
string deviceInfo = "some validated info";
string mimeType, encoding, fileNameExtension;
string[] streams;
Warning[] warnings;
var buffer = viewer.LocalReport.Render("PDF", deviceInfo,
out mimeType, out encoding, out fileNameExtension,
out streams, out warnings);
return File(new MemoryStream(buffer), "application/pdf", "MyPdfName.pdf");
}
我已经有一些报告,并且都渲染得很好。但是现在我用同样的方法创建了一个新的PDF,但是当我打开动作时,PDF是空的,也就是说,它只是一个页面,这个页面上什么也没有(是空白的)。
但如果这还不够奇怪的话,现在我用IE(9)作为浏览器进行测试,报告呈现得很好,所以我决定在FireFox中尝试一下,也没有得到任何结果。
问题:
所以这就是我不明白的,我在返回之前渲染PDF所以为什么浏览器可以影响这个?
是否可能强制ReportViewer抛出异常,如果有任何错误?因为现在,不要得到错误只是一个空页。
和最重要的是,我怎么能解决这个问题(使工作在Chrome)?
这似乎是Chrome最新版本中的一个错误。该问题在2015年10月14日被报告,并在最近的版本中被修复。
对我来说,更新到Chrome 46.0.2490.80解决了这个问题。
来源:https://code.google.com/p/chromium/issues/detail?id=543018