2009-07-04 64 views
6

如何设置PDF导出的格局?报告查看器Landscape PDF导出

刷新前无法使用System.Drawing.Printing.PageSettings。

 Type tip = reportViewer1.GetType(); 
     FieldInfo[] pr = tip.GetFields(BindingFlags.Instance | BindingFlags.NonPublic); 
     System.Drawing.Printing.PageSettings ps = new System.Drawing.Printing.PageSettings(); 
     ps.Landscape = true; 

     // ps.PaperSource= 
     foreach (FieldInfo item in pr) 
     { 
      if (item.Name == "m_pageSettings") 
      { 
       item.SetValue(reportViewer1, ps); 

      } 
     } 
+0

检查此帖:http://stackoverflow.com/questions/25387415/export-rdlc-report-to-pdf-in-景观模式 – 2014-11-05 20:21:52

回答

4

最好的办法是在呈现出口的通DeviceInformation。

退房http://msdn.microsoft.com/en-us/library/ms154682.aspx

您可以通过PageHeight和页宽为DeviceInformation,所以您可以为横向格式指定8.5x11。下面

代码示例:

Dim warnings As Warning() = Nothing 
Dim streamids As String() = Nothing 
Dim mimeType As String = Nothing 
Dim encoding As String = Nothing 
Dim extension As String = Nothing 
Dim bytes As Byte() 
Dim deviceInf as String 

deviceInf = "<DeviceInfo><PageHeight>8.5in</PageHeight><PageWidth>11in</PageWidth></DeviceInfo>" 

bytes = ReportViewer1.LocalReport.Render("PDF", deviceInf, mimeType, encoding, extension, streamids, warnings) 
Dim fs As New FileStream(FILENAME, FileMode.Create) 
fs.Write(bytes, 0, bytes.Length) 
fs.Close() 
+1

更改``和``完美地为我工作。 1行修复! – 2012-08-16 15:24:34

8

在您的报告(rdlc)选择报告的设计视图,并在属性面板设置在page size

width :11in 
height :8.5in 
+4

或者,对于使用A4的欧洲人,宽度:29.7厘米,高度:21厘米。 – 2013-09-13 14:05:34

-1

以下项目使用第二PARAM:deviceInf在功能ReportViewer1.LocalReport.Render(..)是正确的。 此外,它'正确的情况下呈现PDF,TIF图像,但不会影响与WORD