我找到了解決此問題的解決方法。通過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渲染器的這些可能的設備信息設置http://technet.microsoft.com/en-in/library/ms154682.aspx – Ron5504
如果您需要使用不同的紙張尺寸渲染不同的報告,會發生什麼情況 – Smith