Hallo, wie kann ich einen Microsoft.Reporting.WinForms (Lokalen-)Report ohne den ReportViewer als PDF-File speichern? Das Drucken (ohne ReportViewer) ist hier: http://msdn.microsoft.com/de-de/library/ms252091.aspx beschrieben und funktioniert soweit auch. Wie bekomme ich den Report aber jetzt als PDF?
an sich nutzt du schon noch den ReportViewer dafür, nur dass dieser auf keiner Form sondern nur im Code exisitiert...
/// <summary> /// Erstellt das Infoblatt im angegebenen Ziel als PDF /// </summary> /// <param name="ZielDateiName"></param> public void CreatePdf(string targetFile) { //Nur noch mal zur Vorsicht, Dateiendung ".pdf" falls nicht vorhanden if(!targetFile.EndsWith(".pdf")) targetFile += ".pdf";
//ReportViewer im Hintergrund erstellen, um PDF zu drucken, und Report zuweisen. ReportViewer tmpRepViewer = new ReportViewer();
//Report als Embedded Resource mit dem Namen "Report.rdlc" ... entsprechend anpassen tmpRepViewer.LocalReport.ReportEmbeddedResource = "Report.rdlc";
//Report mit Daten befüllen //{... weiß ja net, ob du da noch was machen musst, aber das sollteste auch selbst wissen ...}
//Report als PDF in Datei speichern byte[] PDF = tmpRepViewer.LocalReport.Render("PDF"); FileStream fsReport = new FileStream(targetFile, FileMode.Create, FileAccess.Write, FileShare.None); fsReport.Write(PDF, 0, PDF.Length); fsReport.Close();
tmpRepViewer.Dispose(); }
BITTE BEACHTEN: Verwiesen wurde auf Microsoft.Reporting.WinForms und Microsoft.Reporting.Common auf dem Lib-Ordner von Visual Studio 2010...
Ja, is halt dann der unterschied, ob man den Report lokal liegen hat oder als eingebettete Ressource :) ich habs lieber als Embedded Ressource, da kann der Anwender nix wegkopieren