SSRS ReportViewer-如何在导出为PDF时提高图像质量

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,

有一段时间,我注意到每当我将报表从ReportViewer控件(Webforms版本)导出为PDF格式时,任何包含的图像都会失去质量,并出现轻微的像素化

然而,它们在ReportViewer中看起来很好

从我所读到的内容来看,PDF渲染器将以96 dpi的速度调整任何包含的图像的大小,而不管图像最初是什么dpi

我做了一些挖掘,发现了这篇文章

我已经在我自己的代码中尝试了这种方法,通过像这样连接一个按钮

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,但结果仍然没有差异

我现在只是在兜圈子,毫无疑问我错过了什么。我希望有一种方法,有人能给我一些启示


谢谢

你有没有想过?我一直在寻找解决同样问题的方法,但恐怕没有,我有点放弃了,只是把它归结为报表查看器工作方式的“设计”。请让我知道,如果你有任何进一步与此!