【问题标题】:Can I change the PDF resolution in RDLC我可以更改 RDLC 中的 PDF 分辨率吗
【发布时间】:2013-07-25 23:43:46
【问题描述】:

我正在通过 RDLC 文件生成报告。我的报告中有一些带有条形图的图表。当我将报告导出为 PDF 时,图表的分辨率很差,条形图会像素化。是否可以为在 RDLC 中以本地模式运行的报告定义更高分辨率的 PDF?

我发现这个链接说通过 ReportServer 生成的 pdf 可以被赋予更高的分辨率。但是我在任何地方都找不到这个配置文件。 http://msdn.microsoft.com/en-us/library/ms154682.aspx

这是 RDLC 文件的限制吗? RDLC 文件是否可行?

谢谢!

【问题讨论】:

    标签: c# visual-studio-2012 reporting-services reportviewer


    【解决方案1】:

    我找到了解决此问题的方法。通过reportviewer设置可能无法更改PDF的dpiX和dpiY,但我们可以通过C#手动导出或渲染pdf来实现。 Report.Render() 执行此操作并在其 XML 的 <deviceinfo> 参数中使用 dpiX 和 dpiY 值。 这是执行此操作的代码:

            string reportype = "PDF";
            string mimeType;
            string encoding;
            string fileNameExtension;
    
            string devinfo = "<DeviceInfo><ColorDepth>32</ColorDepth><DpiX>350</DpiX><DpiY>350</DpiY><OutputFormat>PDF</OutputFormat>"+
            "  <PageWidth>8.5in</PageWidth>" +
             "  <PageHeight>11in</PageHeight>" +
             "  <MarginTop>0.5in</MarginTop>" +
             "  <MarginLeft>0.5in</MarginLeft>" +
              "  <MarginRight>0in</MarginRight>" +
              "  <MarginBottom>0in</MarginBottom>" +
            "</DeviceInfo>";
    
            Warning[] warnings;
            string[] streams;
            byte[] renderedBytes;
    
            renderedBytes = this.reportViewer1.LocalReport.Render(reportype, devinfo, out mimeType,
    
        out encoding,
    
        out fileNameExtension,
    
        out streams,
    
        out warnings);
    
            using (FileStream fs = new FileStream("output3.pdf", FileMode.Create))
            {
                fs.Write(renderedBytes, 0, renderedBytes.Length);
            }
    

    【讨论】:

    • 太好了,我的印象是无法为 RDLC 设置设备信息,但我当然错了。快速查找并找到这些可能的 PDF 渲染器设备信息设置technet.microsoft.com/en-in/library/ms154682.aspx
    • 如果您需要用不同的纸张尺寸呈现不同的报告会发生什么
    【解决方案2】:

    可以在 rsreportserver.config 中更改这些设置,查看属于您的报表服务器实例的设置。

    此处的示例:http://technet.microsoft.com/en-us/library/ms156281.aspx

    希望对你有所帮助。

    【讨论】:

    • 您好,感谢您的回答。我检查了页面,似乎可以为 ReportServer 更改这些设置。我正在本地模式下运行报告。我可以更改 RDLC 文件本地模式的 PDF 设置吗?
    【解决方案3】:

    PDF 导出中的图表是导出为 PDF 的位图。您可能无法使用 RDLC 来控制它们。使用 RDL,您可以使用 DeviceInfo 进行额外控制。

    更正: 我的印象是无法为 RDLC 设置设备信息,但我当然错了。快速查找并找到these PDF 渲染器可能的设备信息设置

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-04-27
      • 2021-12-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多