CSharp - 在RDLC中,是否可以更改PDF分辨率

  显示原文与译文双语对照的内容
0 0

我正在通过RDLC文件生成报告。 我的报告里有一些图表。 当我将报表导出到PDF时,图表的分辨率相当差,条形图得到了模拟性。 是否可以为在RDLC中运行的报表定义更高的PDF分辨率?

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

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

谢谢!

时间:原作者:3个回答

0 0

我找到了解决这个问题的方法。 可以能不能通过reportviewer设置更改PDF的dpiX和 dpiY,但是通过手动导出或者呈现PDF可以做到这一点。 在XML参数的<deviceinfo> 参数中,Report.Render() 执行这里操作并使用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);
 }
原作者:
0 0

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

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

希望能帮助你。

原作者:
0 0

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

原作者:
...