2009-07-04 33 views
6

¿Qué se debe hacer para establecer el paisaje para una exportación en pdf?Report Viewer Landscape pdf export

usando System.Drawing.Printing.PageSettings antes de que una actualización no funcione.

 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

revise esta publicación: http://stackoverflow.com/questions/25387415/export-rdlc-report-to-pdf-in- landscape-mode –

Respuesta

4

La mejor manera es pasar DeviceInformation durante el procesamiento de la exportación.

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

Puede pasar el PageHeight y PageWidth como DeviceInformation, para que pueda especificar 8.5x11 para el formato de paisaje.

ejemplo

código de abajo:

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

Cambiando '' y '' funcionó perfectamente para mí. ¡Una solución de 1 línea! –

8

En la vista Diseño de su informe (rdlc) de selección de informe y en el panel de propiedades ajustar los siguientes elementos en page size

width :11in 
height :8.5in 
+4

O, para cualquier persona en Europa que use A4, Ancho: 29,7 cm, Alto: 21 cm. –

-1

utilizando el segundo parámetro: deviceInf en la función ReportViewer1.LocalReport.Render(..) es correcto. Por otra parte, es correcto en el caso de renderizar PDF, imagen TIF, pero no efecto con la PALABRA