2009-07-04 9 views
6

Que faire pour définir le paysage pour une exportation pdf?Report Viewer Paysage pdf export

en utilisant System.Drawing.Printing.PageSettings avant qu'une actualisation ne fonctionne pas.

 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

vérifier ce post: http://stackoverflow.com/questions/25387415/export-rdlc-report-to-pdf-in- mode paysage –

Répondre

4

Le meilleur moyen est de passer DeviceInformation pendant le rendu de l'exportation.

Découvrez http://msdn.microsoft.com/en-us/library/ms154682.aspx

Vous pouvez passer le PageHeight et PageWidth comme DeviceInformation, de sorte que vous pouvez spécifier 8,5x11 pour votre format paysage.

Exemple de code ci-dessous:

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

Changer '' et '' fonctionnait parfaitement pour moi. Une correction de 1 ligne! –

8

en mode Création de votre rapport (rdlc) Rapport de sélection et dans le volet de propriétés définir les éléments suivants dans page size

width :11in 
height :8.5in 
+4

Ou, pour tout le monde en Europe en utilisant A4, Largeur: 29,7 cm, Hauteur: 21 cm. –

-1

Utilisation du second param: deviceInf dans la fonction ReportViewer1.LocalReport.Render(..) est correcte. En outre, il est correct dans le cas de rendu PDF, image TIF, mais pas d'effet avec WORD