2009-07-04 75 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