SSRS ReportViewer-如何在导出为PDF时提高图像质量
有一段时间,我注意到每当我将报表从ReportViewer控件(Webforms版本)导出为PDF格式时,任何包含的图像都会失去质量,并出现轻微的像素化 然而,它们在ReportViewer中看起来很好 从我所读到的内容来看,PDF渲染器将以96 dpi的速度调整任何包含的图像的大小,而不管图像最初是什么dpi 我做了一些挖掘,发现了这篇文章 我已经在我自己的代码中尝试了这种方法,通过像这样连接一个按钮SSRS ReportViewer-如何在导出为PDF时提高图像质量,pdf,reporting-services,reportviewer,Pdf,Reporting Services,Reportviewer,有一段时间,我注意到每当我将报表从ReportViewer控件(Webforms版本)导出为PDF格式时,任何包含的图像都会失去质量,并出现轻微的像素化 然而,它们在ReportViewer中看起来很好 从我所读到的内容来看,PDF渲染器将以96 dpi的速度调整任何包含的图像的大小,而不管图像最初是什么dpi 我做了一些挖掘,发现了这篇文章 我已经在我自己的代码中尝试了这种方法,通过像这样连接一个按钮 protected void btnExport_Click(object sender,
protected void btnExport_Click(object sender, EventArgs e)
{
string mimeType, encoding, fileNameExtension;
Warning[] warnings;
string[] streams;
var sb = new StringBuilder(1024);
var xr = XmlWriter.Create(sb);
xr.WriteStartElement("DeviceInfo");
xr.WriteElementString("DpiX", "300");
xr.WriteElementString("DpiY", "300");
xr.Close();
byte[] bytes = ReportViewer1.ServerReport.Render("PDF", sb.ToString(), out mimeType, out encoding,
out fileNameExtension, out streams, out warnings);
Response.ContentType = "application/pdf";
Response.AppendHeader("Content-Disposition", "attachment; filename=Test.pdf");
Response.BinaryWrite(bytes);
}
这实际上使我的图像在导出的PDF中比在报表查看器控件中显示的图像小得多
我的原始图像是300dpi的600x600,我已经尝试按原样使用这些图像,并且在报告RDL designer中的图像属性上,将大小属性设置为“适合”,并将图像大小设置为0.25in x 0.25in。同样,在报表查看器控件的预览模式下,所有内容看起来都很棒,但在导出为PDF时,质量会降低
我尝试在图像编辑器(paint.net)中将图像大小调整为0.25in x 0.25in,保持300 dpi,但结果仍然没有差异
我现在只是在兜圈子,毫无疑问我错过了什么。我希望有一种方法,有人能给我一些启示
谢谢 你有没有想过?我一直在寻找解决同样问题的方法,但恐怕没有,我有点放弃了,只是把它归结为报表查看器工作方式的“设计”。请让我知道,如果你有任何进一步与此!