IRONSOFTWAREHOME
VIDEOS

Wie man PDF-Dateien in der VB .NET-Bibliothek generiert | IronPDF

Curtis Chau
Curtis Chau
Updated: 19. Juli 2026

Die Migration von SQL Server Reporting Services (SSRS) zu IronPDF verwandelt Ihren PDF-Generierungs-Workflow von einer schwergewichtigen serverbasierten Infrastruktur in eine leichtgewichtige, prozessinterne Bibliothek, die direkt in jede .NET-Anwendung eingebettet werden kann. Dieser Leitfaden bietet einen vollständigen, schrittweisen Migrationspfad, der SQL Server-Abhängigkeiten, den Overhead des Berichtsservers und die Bindung an das Microsoft-Ökosystem eliminiert.

Warum von SSRS zu IronPDF migrieren

Verstehen von SSRS

SQL Server Reporting Services (SSRS) ist Microsofts Unternehmensberichtsplattform — eine komplette Suite zur Erstellung, Bereitstellung und Verwaltung von Berichten, eng integriert mit dem SQL Server-Ökosystem. Microsoft hat bestätigt, dass SSRS 2022 die letzte eigenständige Version ist: ab SQL Server 2025 konsolidieren sich On-Premises-Berichte in den Power BI Report Server (PBIRS), und keine neuen SSRS-Versionen werden ausgeliefert. SSRS2022 erhält Sicherheitsupdates bis 11. Januar 2033 in Übereinstimmung mit dem SQL Server 2022-Lebenszyklus (siehe die Reporting Services Consolidation FAQ).

Für viele PDF-Erstellungsszenarien ist die SSRS-Infrastruktur übermäßig. Wichtige Gründe für eine Migration sind:

  1. Ende der SSRS-Linie: SQL Server 2025 wird ohne SSRS ausgeliefert; PBIRS ersetzt es. Neue Arbeiten, die sich auf SSRS richten, führen in eine Sackgasse.
  2. Schwere Infrastruktur: Erfordert SQL Server, Report Server und (für den älteren Web Forms-Viewer) IIS-Konfiguration
  3. Lock-in im Microsoft-Ökosystem: An SQL Server-Lizenzierung und Windows-Server gebunden
  4. Komplexe Bereitstellung: Berichtsbereitstellung, Sicherheitskonfiguration und Abonnementverwaltung
  5. Teure Lizenzierung: SQL Server-Lizenzen, insbesondere für Enterprise-Funktionen
  6. Kein erstklassiger .NET Core Support: Microsofts Microsoft.ReportingServices.ReportViewerControl.WebForms / .Winforms-Pakete sind nur auf das .NET Framework 4.0–4.8.1 ausgelegt. .NET Core / .NET 5+-Benutzer verlassen sich auf den Community-Port ReportViewerCore.NETCore.
  7. Wartungsaufwand: Server-Patching, Datenbankwartung, Berichtsverwaltung
  8. Keine Cloud-native Option: Für lokale Bereitstellung entworfen, Cloud-Unterstützung ist umständlich

Wenn SSRS überflüssig ist

Ihr BedarfSSRS-Gemeinkosten
Rechnungen generierenVollständiger Berichtsserver
Datentabellen exportierenSQL Server-Lizenz
PDFs aus Daten erstellenWindows-Server
Einfache DokumentenerstellungBerichtsabonnements

IronPDF bietet prozessbegleitende PDF-Erzeugung ohne Server-Infrastruktur.

SSRS vs IronPDF Vergleich

FeatureSSRSIronPDF
AbhängigkeitBenötigt SQL ServerKeine spezifische Datenbank-Abhängigkeit
EinsatzServerbasiertBibliothek (eingebettet in Anwendungen)
IntegrationEnge Integration mit MicrosoftFunktioniert mit jeder Datenquelle
DatenvisualisierungUmfangreiche native OptionenPDF-orientierte Visualisierungen
KomplexitätHoch (Servereinrichtung erforderlich)Mäßig bis gering (Einrichtung der Bibliothek)
KostenSQL Server-LizenzierungskostenKosten für die Lizenzierung pro Entwickler
HTML zu PDFNeinVollständiges Chromium
URL zu PDFNeinJa
CSS-UnterstützungBeschränktVollständig CSS3
JavaScriptNeinVollständiger ES2024

IronPDF ist im Gegensatz zu SSRS nicht an eine bestimmte Datenbank oder ein Server-Ökosystem gebunden. Es bietet Entwicklern eine flexible Bibliothek zur dynamischen Erstellung, Bearbeitung und Manipulation von PDF-Dokumenten direkt in C#. Diese Entkopplung von einer serverbasierten Infrastruktur bietet einen spürbaren Vorteil: Sie ist einfach und anpassungsfähig und eignet sich für eine Vielzahl von Anwendungen, die über das Berichtswesen hinausgehen.

Für Teams, die modernes .NET annehmen, bietet IronPDF eine Chromium-Rendering-Engine, die die Infrastrukturkomplexität von SSRS eliminiert.


Bevor Sie beginnen

Voraussetzungen

  1. .NET -Umgebung: .NET Framework 4.6.2+ oder .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. NuGet -Zugriff: Möglichkeit zur Installation von NuGet -Paketen
  3. IronPDF -Lizenz: Ihren Lizenzschlüssel erhalten Sie unter IronPDF.

NuGet-Paketänderungen

# SSRS itself is server-based, but the in-process LocalReport API
# ships via Microsoft's ReportViewerControl packages (latest 150.1652.0,
# June 2024 — .NET Framework 4.0–4.8.1 only).
dotnet remove package Microsoft.ReportingServices.ReportViewerControl.WebForms
dotnet remove package Microsoft.ReportingServices.ReportViewerControl.Winforms

# If your project used the community .NET Core port, remove it too:
# dotnet remove package ReportViewerCore.NETCore

# Install IronPDF
dotnet add package IronPdf
SHELL

Lizenz-Konfiguration

// Add at application startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";

Komplette API-Referenz

Namensraumänderungen

// Before: SSRS
using Microsoft.Reporting.WebForms;
using Microsoft.Reporting.WinForms;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;

Kern-API-Zuordnungen

SSRS-KonzeptIronPDF-ÄquivalentNotizen
LocalReportChromePdfRendererKern-Rendering
ServerReportRenderUrlAsPdf()URL-basiertes Rendering
.rdlc-DateienHTML/CSS-VorlagenFormat der Vorlage
ReportParameterString-InterpolationParameter
ReportDataSourceC#-Daten + HTMLDatenbindung
LocalReport.Render("PDF")RenderHtmlAsPdf()PDF-Ausgabe
SubReportZusammengeführte PDFsVerschachtelte Berichte
Report Server URLNicht erforderlichKein Server erforderlich
ReportViewer SteuerungNicht erforderlichDirekte PDF-Erzeugung
Formate exportierenPDF ist nativGezielte Ausgabe

Beispiele für die Code-Migration

Beispiel 1: Konvertierung von HTML in PDF

Vor (SSRS):

// SSRS - SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSHtmlToPdf
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        
        // Load RDLC report definition
        reportViewer.LocalReport.ReportPath = "Report.rdlc";
        
        // Add HTML content as a parameter or dataset
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var param = new ReportParameter("HtmlContent", htmlContent);
        reportViewer.LocalReport.SetParameters(param);
        
        // Render the report to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF",
            null,
            out mimeType,
            out encoding,
            out fileNameExtension,
            out streams,
            out warnings);
        
        File.WriteAllBytes("output.pdf", bytes);
    }
}

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfHtmlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        
        // Convert HTML string to PDF
        var htmlContent = "<h1>Hello World</h1><p>This is HTML content.</p>";
        var pdf = renderer.RenderHtmlAsPdf(htmlContent);
        
        // Save the PDF file
        pdf.SaveAs("output.pdf");
    }
}

Dieses Beispiel verdeutlicht den grundlegenden architektonischen Unterschied. SSRS erfordert die Erstellung einer ReportViewer-Instanz, das Laden einer .rdlc-Berichtdefinitionsdatei, das Festlegen von Parametern und dann den Aufruf von LocalReport.Render("PDF") mit mehreren out-Parametern für Metadaten.

IronPDF verwendet einen ChromePdfRenderer mit RenderHtmlAsPdf() in nur drei Codezeilen. Es sind keine Berichtsdefinitionsdateien, keine Parameterobjekte und keine Metadaten erforderlich. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: URL zu PDF mit Kopf- und Fußzeilen

Vor (SSRS):

// SSRS - SQL Server Reporting Services
using System;
using System.IO;
using System.Net;
using Microsoft.Reporting.WebForms;

class SSRSUrlToPdf
{
    static void Main()
    {
        // Download HTML content from URL
        string url = "https://example.com";
        string htmlContent;
        
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString(url);
        }
        
        // Create RDLC report with header/footer configuration
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "WebReport.rdlc";
        
        // Set parameters for header and footer
        var parameters = new ReportParameter[]
        {
            new ReportParameter("HeaderText", "Company Report"),
            new ReportParameter("FooterText", "Page " + DateTime.Now.ToString()),
            new ReportParameter("HtmlContent", htmlContent)
        };
        reportViewer.LocalReport.SetParameters(parameters);
        
        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);
        
        File.WriteAllBytes("webpage.pdf", bytes);
    }
}

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class IronPdfUrlToPdf
{
    static void Main()
    {
        // Create a ChromePdfRenderer instance
        var renderer = new ChromePdfRenderer();
        
        // Configure rendering options with header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Company Report</div>"
        };
        
        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages} - " + DateTime.Now.ToString("MM/dd/yyyy") + "</div>"
        };
        
        // Convert URL to PDF
        string url = "https://example.com";
        var pdf = renderer.RenderUrlAsPdf(url);
        
        // Save the PDF file
        pdf.SaveAs("webpage.pdf");
    }
}

SSRS kann URLs nicht direkt in PDF konvertieren. Sie müssen HTML-Inhalt manuell mit WebClient.DownloadString() herunterladen, eine separate .rdlc-Berichtdatei erstellen, das HTML und den Kopf-/Fußzeilentext als ReportParameter-Arrays übermitteln und dann mit der komplexen Render()-Methodensignatur rendern.

IronPDF's RenderUrlAsPdf() erledigt den gesamten Prozess in einem einzigen Aufruf. Kopf- und Fußzeilen werden mit HtmlHeaderFooter-Objekten konfiguriert, die vollständiges HTML/CSS und Platzhalter wie {page} und {total-pages} unterstützen. Erfahren Sie mehr in unseren Tutorials.

Beispiel 3: Datenbankgesteuerter Bericht

Vor (SSRS):

// SSRS - SQL Server Reporting Services
using System;
using System.Data;
using System.Data.SqlClient;
using Microsoft.Reporting.WebForms;
using System.IO;

class SSRSDatabaseReport
{
    static void Main()
    {
        // Create a ReportViewer instance
        var reportViewer = new ReportViewer();
        reportViewer.ProcessingMode = ProcessingMode.Local;
        reportViewer.LocalReport.ReportPath = "SalesReport.rdlc";
        
        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            var dataSet = new DataSet();
            adapter.Fill(dataSet, "Sales");
            
            // Bind data to report
            var dataSource = new ReportDataSource("SalesDataSet", dataSet.Tables[0]);
            reportViewer.LocalReport.DataSources.Clear();
            reportViewer.LocalReport.DataSources.Add(dataSource);
        }
        
        // Render to PDF
        string mimeType, encoding, fileNameExtension;
        string[] streams;
        Warning[] warnings;
        
        byte[] bytes = reportViewer.LocalReport.Render(
            "PDF", null, out mimeType, out encoding,
            out fileNameExtension, out streams, out warnings);
        
        File.WriteAllBytes("sales-report.pdf", bytes);
    }
}

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System;
using System.Data;
using System.Data.SqlClient;
using System.Text;

class IronPdfDatabaseReport
{
    static void Main()
    {
        // Create database connection and fetch data
        string connString = "Server=localhost;Database=SalesDB;Integrated Security=true;";
        var dataTable = new DataTable();
        
        using (var connection = new SqlConnection(connString))
        {
            var adapter = new SqlDataAdapter("SELECT * FROM Sales", connection);
            adapter.Fill(dataTable);
        }
        
        // Build HTML table from data
        var htmlBuilder = new StringBuilder();
        htmlBuilder.Append("<h1>Sales Report</h1><table border='1'><tr>");
        
        foreach (DataColumn column in dataTable.Columns)
            htmlBuilder.Append($"<th>{column.ColumnName}</th>");
        htmlBuilder.Append("</tr>");
        
        foreach (DataRow row in dataTable.Rows)
        {
            htmlBuilder.Append("<tr>");
            foreach (var item in row.ItemArray)
                htmlBuilder.Append($"<td>{item}</td>");
            htmlBuilder.Append("</tr>");
        }
        htmlBuilder.Append("</table>");
        
        // Convert to PDF
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf(htmlBuilder.ToString());
        pdf.SaveAs("sales-report.pdf");
    }
}

SSRS erfordert eine vordesignte .rdlc-Berichtdatei ("SalesReport.rdlc"), das Ausfüllen einer DataSet, das Erstellen einer ReportDataSource mit einem bestimmten Namen ("SalesDataSet"), der mit der Berichtdefinition übereinstimmen muss, das Löschen bestehender Datenquellen, das Hinzufügen der neuen Datenquelle und dann das Rendern.

IronPDF verwendet Ihren vorhandenen Datenzugriffscode (gleiches SqlDataAdapter-Muster), dann baut es HTML dynamisch mit StringBuilder auf. Sie haben die volle Kontrolle über das Layout unter Verwendung von Standard-HTML/CSS - es sind keine proprietären Berichtsdefinitionsdateien erforderlich.


Funktionsvergleich

FeatureSSRSIronPDF
Infrastruktur :
SQL Server-LizenzErforderlichNicht erforderlich
Windows-ServerErforderlichJede Plattform
Datenbank erforderlichJa (ReportServer DB)Nein
: Entwicklung :
Format der VorlageRDLC/RDLHTML/CSS/Razor
DatenquellenEingebauter DSNAlle C#-Daten
: Rendering :
URL zu PDFNeinJa
CSS-UnterstützungBeschränktVollständig CSS3
JavaScriptNeinVollständiger ES2024
DiagrammeEingebautÜber JS-Bibliotheken
Bereitstellung :
KonfigurationKomplexEinfach
WartungHochNiedrig

Gängige Probleme bei der Migration

Ausgabe 1: Definitionen des RDLC-Berichts

SSRS: Verwendet das proprietäre XML-Format .rdlc.

Lösung: Konvertierung in HTML-Vorlagen:

  1. .rdlc in Visual Studio öffnen
  2. Dokumentieren Sie die Layout-Struktur
  3. Neu erstellen in HTML/CSS
  4. Razor für die Datenbindung verwenden

Ausgabe 2: Gemeinsame Datenquellen

SSRS: Verbindungszeichenfolgen in Report Server.

Lösung: Verwenden Sie die Datenzugriffsschicht Ihrer Anwendung:

var data = await _dbContext.Sales.ToListAsync();
// Then bind to HTML template

Ausgabe 3: Berichtsparameter UI

SSRS: Eingebaute Parameteraufforderungen.

Lösung: Erstellen Sie Parameter UI in Ihrer Anwendung:

// Your own parameter form, then:
var pdf = GenerateReport(startDate, endDate, region);

Ausgabe 4: Abonnements/geplante Berichte

SSRS: Eingebautes Abonnement-System.

Lösung: Verwenden Sie das Framework für Hintergrundaufträge:

// Using Hangfire or similar
RecurringJob.AddOrUpdate("weekly-report",
    () => GenerateAndEmailReport(), Cron.Weekly);

Migrations-Checkliste

Vor der Migration

  • Alle SSRS-Berichte inventarisieren (.rdlc-Dateien)
  • Dokumentdatenquellen und Verbindungen
  • Screenshot-Berichtslayouts zur visuellen Orientierung
  • Liste der Berichtsparameter für jeden Bericht
  • Beachten Sie die Abonnementpläne
  • Den IronPDF Lizenzschlüssel erhalten Sie unter IronPDF

Code-Aktualisierungen

  • ReportViewer-Pakete entfernen
  • IronPdf NuGet-Paket installieren
  • .rdlc-Dateien in HTML-Vorlagen konvertieren
  • Ersetzen von LocalReport durch ChromePdfRenderer
  • Ersetzen von ReportDataSource mit C#-Daten + HTML-Vorlagen
  • Ersetzen von ReportParameter mit Zeichenketteninterpolation
  • Ersetzen von LocalReport.Render("PDF") durch RenderHtmlAsPdf()
  • Implementieren von Kopf-/Fußzeilen mit HtmlHeaderFooter
  • Lizenzinitialisierung beim Anwendungsstart hinzufügen

Infrastruktur

  • Außerbetriebnahme des Planberichtservers
  • Abonnements zum Job-Scheduler migrieren (Hangfire usw.)
  • Bereitstellungsskripte aktualisieren

Testen

  • PDF-Ausgabe visuell vergleichen
  • Datengenauigkeit überprüfen
  • Test der Paginierung
  • Alle Parameter prüfen
  • Leistungstests

Hinweis:: SSRS ist ein eingetragenes Warenzeichen seines jeweiligen Eigentümers. Diese Website steht in keiner Verbindung zu Microsoft und wird nicht von Microsoft unterstützt oder gesponsert. Alle Produktnamen, Logos und Marken sind Eigentum ihrer jeweiligen Eigentümer. Vergleiche dienen nur zu Informationszwecken und spiegeln öffentlich zugängliche Informationen zum Zeitpunkt des Schreibens wider.
Curtis Chau
Technischer Autor

Curtis Chau hat einen Bachelor-Abschluss in Informatik von der Carleton University und ist spezialisiert auf Frontend-Entwicklung mit Expertise in Node.js, TypeScript, JavaScript und React. Leidenschaftlich widmet er sich der Erstellung intuitiver und ästhetisch ansprechender Benutzerschnittstellen und arbeitet gerne mit modernen Frameworks sowie der Erstellung gut strukturierter, optisch ansprechender Handbücher.

...
Weiterlesen

Verwandte Artikel

Key in blue circle

Holen Sie sich sofort Ihren kostenlosen 30-Tage-Testschlüssel.

Your trial license will be sent to your email address

Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.

bullet_checkedIhr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.Keine Einschränkungen. 100 % freigeschaltet. Keine Kreditkarte.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Buchen Sie Ihre kostenlose Live-Demo
Booking Badge

Von Millionen von Ingenieur*innen weltweit vertraut

Kundenlogos von Iron Software
Erhalten Sie Ihre unverbindliche Beratung
Füllen Sie das Formular unten aus oder senden Sie eine E-Mail an sales@ironsoftware.com
Ihre Daten werden immer vertraulich behandelt.
Von Millionen von Ingenieur*innen weltweit vertraut
Kundenlogos von Iron Software
Erhalten Sie sofort Ihren kostenlosen 30-Tage-Testschlüssel.
Ihr Testlizenzschlüssel wurde Ihnen per E-Mail gesendet.