Zum Fußzeileninhalt springen
VIDEOS

Wie man Bilder mit Daten-URIs in C# | IronPDF einbettet

Telerik Reporting ist eine leistungsstarke Plattform für Unternehmensberichte, die sich bei .NET-Entwicklern für die Erstellung interaktiver Berichte mit visuellen Designern und Drilldown-Funktionen bewährt hat. Für Teams, deren primärer Bedarf in der PDF-Generierung und nicht in einer umfassenden Berichtsinfrastruktur besteht, stellt Telerik-Berichterstattungjedoch oft einen erheblichen Mehraufwand an Lizenzkosten, Bereitstellungskomplexität und Laufzeitaufwand dar.

Dieser Leitfaden bietet einen vollständigen Migrationspfad von Telerik-Berichterstattungzu IronPDF, mit Schritt-für-Schritt-Anleitungen, Code-Vergleichen und praktischen Beispielen für professionelle .NET-Entwickler, die diesen Übergang evaluieren.

Warum von Telerik-Berichterstattungmigrieren

Bei der Entscheidung, von Telerik-Berichterstattungzu migrieren, geht es in der Regel darum, Ihr Tool auf Ihre tatsächlichen Anforderungen abzustimmen. Zu den wichtigsten Gründen, warum Entwicklerteams eine Migration in Betracht ziehen, gehören:

Pro-Entwickler-Lizenzierung: Standalone Telerik-Berichterstattungbeginnt bei ~685 USD pro Entwickler und das umfassendere DevCraft Complete-Bundle beginnt bei ~1.763 USD (2026 Q1, ComponentSource). Beide werden als entweder unbefristet + 1 Jahr Wartung oder als jährliches Abonnement verkauft. Für Teams, die nur die PDF-Erstellung benötigen, stellt dies eine erhebliche ungenutzte Kapazität dar.

Berichtsdesigner-Abhängigkeit: Telerik-Berichterstattungerfordert den Standalone-, Web- oder in Visual Studio integrierten Designer sowie Laufzeit-Assemblies aus dem privaten Telerik NuGet-Feed (https://nuget.telerik.com/v3/index.json, Lizenzschlüssel erforderlich). Dies erhöht die Komplexität von Entwicklungsumgebungen und CI/CD-Pipelines.

Komplexe Infrastruktur: Für HTML5-Viewer-Szenarien hosten Sie auch einen Reporting REST-Service (Telerik.Reporting.Services.AspNetCore) mit Speicher, Resolver- und Viewer-Skript-Konfiguration – eine Infrastruktur, die den Wartungsaufwand für einfache PDF-Generierungsaufgaben erhöht.

Eigenes Format: Die .trdp und .trdx XML-Berichtsdefinitionen (Teleriks eigenes Format — nicht RDL/RDLC, was ausdrücklich nicht unterstützt wird) binden Sie an das Telerik-Ökosystem. Das Migrieren oder Ändern von Vorlagen erfordert Telerik-Tools.

Schweres Laufzeitsystem: Großes Bereitstellungsabdruck für das, was möglicherweise eine einfache HTML-zu-PDF-Konvertierung ist, plus optionale Rendering-DLLs für DOCX/XLSX/PPTX/XPS.

Erneuerbare Wartung: Selbst bei einer unbefristeten Lizenz erfordern laufende Updates, Fehlerbehebungen und Unterstützung die Erneuerung des Wartungsabonnements.

Wenn Telerik-Berichterstattungüberflüssig ist

Wenn Sie Telerik-Berichterstattunghauptsächlich dazu verwenden, PDFs aus Daten zu generieren, zahlen Sie wahrscheinlich für Funktionen, die nicht genutzt werden:

Sie benötigen Telerik stellt zur Verfügung (unbenutzt)
PDF aus HTML Visueller Designer, Drilldowns
Einfache Berichte Interaktiver Betrachter, Exporte
Server-seitige PDFs Desktop-Steuerelemente, Charting-Engine

IronPDF bietet eine zielgerichtete PDF-Generierung ohne den Aufwand für Unternehmensberichte.

IronPDF vs. Telerik Reporting: Funktionsvergleich

Das Verständnis der architektonischen Unterschiede hilft technischen Entscheidungsträgern, die Investition in die Migration zu bewerten:

Feature Telerik-Berichterstattung IronPDF
Schwerpunkt Berichtserstellung mit PDF-Exportoption Umfassende PDF-Generierung aus HTML
Integration Nahtlos mit ASP.NET Core-Anwendungen Kann in jede .NET-Anwendung integriert werden
Komplexität der Einrichtung Erfordert die Installation eines Berichtsdesigners Einfache NuGet-Installation
Preisgestaltung Teil der kommerziellen DevCraft-Suite Getrennte Lizenzierung, kostengünstiger für eigenständige PDF-Erstellung
PDF-Erstellung Begrenzt auf Berichtsexporte Voller Funktionsumfang mit erweiterter PDF-Bearbeitung
Zielpublikum Entwickler, die berichtszentrierte Lösungen benötigen Entwickler, die flexible Lösungen zur PDF-Erzeugung benötigen
Vorlage Format .trdp / .trdx (XML; nicht RDL/RDLC) HTML/CSS/Razor
Lernkurve Telerik-spezifisch (Ausdruckssprache, Abschnitte) Standard-Webtechnologien
HTML zu PDF Server-seitig über HtmlTextBox (begrenzt auf HTML/CSS) Vollständige Chromium-Wiedergabe
URL zu PDF Nicht eingebaut (HTML selbst abrufen) Ja
CSS-Unterstützung Begrenzt (CSS-ähnliche Selektoren im Designer) Vollständig CSS3
JavaScript zur Renderzeit Nein (Server-Engine führt JS nicht aus) Vollständiger ES2024
Digitale Signaturen Ja (X.509 / .PFX über PDF-Geräteinfo) Ja
PDF/A PDF/A-1b, PDF/A-2b, PDF/A-3b PDF/A-3
Laufzeitumfang Groß (Engine + Rendering-DLLs pro Format) Kleiner

Schnellstart: Telerik-Berichterstattungzu IronPDF Migration

Mit diesen grundlegenden Schritten kann die Migration sofort beginnen.

Schritt 1: Ersetzen von NuGet-Paketen

Entfernen Sie alle Telerik Reporting-Pakete:

# Remove Telerik-Berichterstattungpackages (hosted on the private Telerik NuGet feed)
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
# Remove Telerik-Berichterstattungpackages (hosted on the private Telerik NuGet feed)
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
SHELL

IronPDF installieren:

# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
# Install IronPDF(hosted on nuget.org)
dotnet add package IronPdf
SHELL

Schritt 2: Namespaces aktualisieren

Ersetze Telerik-Namensräume durch den IronPDF-Namespace:

// Before (Telerik Reporting)
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

// After (IronPDF)
using IronPdf;
// Before (Telerik Reporting)
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

// After (IronPDF)
using IronPdf;
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports Telerik.Reporting.Drawing

' After (IronPDF)
Imports IronPdf
$vbLabelText   $csharpLabel

Schritt 3: Lizenz initialisieren

Hinzufügen der Lizenzinitialisierung beim Start der Anwendung:

IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Beispiele für die Code-Migration

Konvertierung von HTML in PDF

Der häufigste Anwendungsfall verdeutlicht den architektonischen Unterschied zwischen diesen .NET-PDF-Bibliotheken.

Telerik Reporting Ansatz:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Collections.Specialized;

class TelerikExample
{
    static void Main()
    {
        var reportSource = new Telerik.Reporting.TypeReportSource();
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = new Telerik.Reporting.Report()
        {
            Items = { new Telerik.Reporting.HtmlTextBox() { Value = "<h1>Hello World</h1><p>Sample HTML content</p>" } }
        };

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("output.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Collections.Specialized;

class TelerikExample
{
    static void Main()
    {
        var reportSource = new Telerik.Reporting.TypeReportSource();
        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = new Telerik.Reporting.Report()
        {
            Items = { new Telerik.Reporting.HtmlTextBox() { Value = "<h1>Hello World</h1><p>Sample HTML content</p>" } }
        };

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("output.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports System.Collections.Specialized
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim reportSource As New Telerik.Reporting.TypeReportSource()
        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = New Telerik.Reporting.Report() With {
            .Items = {New Telerik.Reporting.HtmlTextBox() With {.Value = "<h1>Hello World</h1><p>Sample HTML content</p>"}}
        }

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("output.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF-Ansatz:

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

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1><p>Sample HTML content</p>")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Die Telerik-Version erfordert das Erstellen eines TypeReportSource, eines InstanceReportSource, eines Report-Objekts mit einem HtmlTextBox, eines ReportProcessor sowie die manuelle Verwaltung des Dateistreams. IronPDF's ChromePdfRenderer erledigt den gesamten Prozess mit drei Codezeilen.

Für fortgeschrittene HTML-zu-PDF-Szenarien siehe den HTML-zu-PDF-Konvertierungsleitfaden.

Konvertierung von URLs zu PDF

Die URL-zu-PDF-Konvertierung offenbart eine erhebliche Fähigkeitslücke in Telerik Reporting.

Telerik Reporting Ansatz:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Net;

class TelerikExample
{
    static void Main()
    {
        string htmlContent;
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }

        var report = new Telerik.Reporting.Report();
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = htmlContent
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("webpage.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using System.Net;

class TelerikExample
{
    static void Main()
    {
        string htmlContent;
        using (var client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }

        var report = new Telerik.Reporting.Report();
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = htmlContent
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("webpage.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports System.Net
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim htmlContent As String
        Using client As New WebClient()
            htmlContent = client.DownloadString("https://example.com")
        End Using

        Dim report As New Telerik.Reporting.Report()
        Dim htmlTextBox As New Telerik.Reporting.HtmlTextBox() With {
            .Value = htmlContent
        }
        report.Items.Add(htmlTextBox)

        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = report

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("webpage.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF-Ansatz:

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

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://example.com");
        pdf.SaveAs("webpage.pdf");
    }
}
Imports IronPdf
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://example.com")
        pdf.SaveAs("webpage.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Telerik Reporting hat keine eingebaute URL-zu-PDF-Methode – Sie holen das HTML selbst (hier über WebClient), und die serverseitige Engine führt kein JavaScript aus, sodass externe Skripte und dynamische Inhalte nicht gerendert werden. IronPDF's RenderUrlAsPdf-Methode erfasst die vollständig gerenderte Seite genau so, wie sie im Browser angezeigt wird.

In der URL zur PDF-Dokumentation finden Sie Informationen zur Authentifizierung und zu benutzerdefinierten Kopfzeilenoptionen.

Kopf- und Fußzeilen mit Seitenzahlen einfügen

Kopf- und Fußzeilen mit dynamischen Seitenzahlen sind für professionelle Dokumente unerlässlich. Die Implementierungsansätze unterscheiden sich erheblich.

Telerik Reporting Ansatz:

// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

class TelerikExample
{
    static void Main()
    {
        var report = new Telerik.Reporting.Report();

        // Add page header
        var pageHeader = new Telerik.Reporting.PageHeaderSection();
        pageHeader.Height = new Unit(0.5, UnitType.Inch);
        pageHeader.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Document Header",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageHeaderSection = pageHeader;

        // Add page footer
        var pageFooter = new Telerik.Reporting.PageFooterSection();
        pageFooter.Height = new Unit(0.5, UnitType.Inch);
        pageFooter.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Page {PageNumber} of {PageCount}",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageFooterSection = pageFooter;

        // Add content
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("report_with_headers.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
// NuGet: Install-Package Telerik.Reporting
using Telerik.Reporting;
using Telerik.Reporting.Processing;
using Telerik.Reporting.Drawing;

class TelerikExample
{
    static void Main()
    {
        var report = new Telerik.Reporting.Report();

        // Add page header
        var pageHeader = new Telerik.Reporting.PageHeaderSection();
        pageHeader.Height = new Unit(0.5, UnitType.Inch);
        pageHeader.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Document Header",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageHeaderSection = pageHeader;

        // Add page footer
        var pageFooter = new Telerik.Reporting.PageFooterSection();
        pageFooter.Height = new Unit(0.5, UnitType.Inch);
        pageFooter.Items.Add(new Telerik.Reporting.TextBox()
        {
            Value = "Page {PageNumber} of {PageCount}",
            Location = new PointU(0, 0),
            Size = new SizeU(new Unit(6, UnitType.Inch), new Unit(0.3, UnitType.Inch))
        });
        report.PageFooterSection = pageFooter;

        // Add content
        var htmlTextBox = new Telerik.Reporting.HtmlTextBox()
        {
            Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        };
        report.Items.Add(htmlTextBox);

        var instanceReportSource = new Telerik.Reporting.InstanceReportSource();
        instanceReportSource.ReportDocument = report;

        var reportProcessor = new ReportProcessor();
        var result = reportProcessor.RenderReport("PDF", instanceReportSource, null);

        using (var fs = new System.IO.FileStream("report_with_headers.pdf", System.IO.FileMode.Create))
        {
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length);
        }
    }
}
Imports Telerik.Reporting
Imports Telerik.Reporting.Processing
Imports Telerik.Reporting.Drawing
Imports System.IO

Class TelerikExample
    Shared Sub Main()
        Dim report As New Telerik.Reporting.Report()

        ' Add page header
        Dim pageHeader As New Telerik.Reporting.PageHeaderSection()
        pageHeader.Height = New Unit(0.5, UnitType.Inch)
        pageHeader.Items.Add(New Telerik.Reporting.TextBox() With {
            .Value = "Document Header",
            .Location = New PointU(0, 0),
            .Size = New SizeU(New Unit(6, UnitType.Inch), New Unit(0.3, UnitType.Inch))
        })
        report.PageHeaderSection = pageHeader

        ' Add page footer
        Dim pageFooter As New Telerik.Reporting.PageFooterSection()
        pageFooter.Height = New Unit(0.5, UnitType.Inch)
        pageFooter.Items.Add(New Telerik.Reporting.TextBox() With {
            .Value = "Page {PageNumber} of {PageCount}",
            .Location = New PointU(0, 0),
            .Size = New SizeU(New Unit(6, UnitType.Inch), New Unit(0.3, UnitType.Inch))
        })
        report.PageFooterSection = pageFooter

        ' Add content
        Dim htmlTextBox As New Telerik.Reporting.HtmlTextBox() With {
            .Value = "<h1>Report Content</h1><p>This is the main content.</p>"
        }
        report.Items.Add(htmlTextBox)

        Dim instanceReportSource As New Telerik.Reporting.InstanceReportSource()
        instanceReportSource.ReportDocument = report

        Dim reportProcessor As New ReportProcessor()
        Dim result = reportProcessor.RenderReport("PDF", instanceReportSource, Nothing)

        Using fs As New FileStream("report_with_headers.pdf", FileMode.Create)
            fs.Write(result.DocumentBytes, 0, result.DocumentBytes.Length)
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF-Ansatz:

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

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        };

        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>");
        pdf.SaveAs("report_with_headers.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class IronPdfExample
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        };

        renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter()
        {
            HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        };

        var pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>");
        pdf.SaveAs("report_with_headers.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering
Imports System

Class IronPdfExample
    Shared Sub Main()
        Dim renderer As New ChromePdfRenderer()

        ' Configure header and footer
        renderer.RenderingOptions.HtmlHeader = New HtmlHeaderFooter() With {
            .HtmlFragment = "<div style='text-align:center'>Document Header</div>"
        }

        renderer.RenderingOptions.HtmlFooter = New HtmlHeaderFooter() With {
            .HtmlFragment = "<div style='text-align:center'>Page {page} of {total-pages}</div>"
        }

        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Report Content</h1><p>This is the main content.</p>")
        pdf.SaveAs("report_with_headers.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Telerik Reporting erfordert das Erstellen der PageHeaderSection- und PageFooterSection-Objekte, das Konfigurieren von Unit-Messungen, das Festlegen von Location- und Size-Eigenschaften sowie die Verwaltung von TextBox-Elementen mit spezifischen Koordinaten. IronPDF's HTML-basierte Ansatz verwendet vertraute CSS-Stile und einfache Platzhalter wie {page} und {total-pages}.

Weitere Informationen über Kopf- und Fußzeilenoptionen finden Sie in der Kopf- und Fußzeilen-Dokumentation.

Telerik-BerichterstattungAPI zu IronPDF Mapping Referenz

Dieses Mapping beschleunigt die Migration, indem es direkte API-Entsprechungen aufzeigt:

Telerik-Berichterstattung IronPDF
Report Klasse ChromePdfRenderer
ReportProcessor renderer.RenderHtmlAsPdf()
ReportSource HTML-Zeichenfolge oder Datei
.trdp / .trdx Dateien HTML/CSS-Vorlagen
ReportParameter String-Interpolation / Razor
ReportDataSource C#-Datenbindung
RenderReport("PDF") RenderHtmlAsPdf()
Export() pdf.SaveAs()
TextBox Berichtsobjekt HTML <span>, <p>, <div>
Table Berichtsobjekt HTML <table>
PictureBox HTML <img>
PageSettings RenderingOptions

Gängige Migrationsprobleme und Lösungen

Ausgabe 1: Berichtsdefinitionen (.trdp/.trdx-Dateien)

Telerik Reporting verwendet proprietäre XML-Berichtsdefinitionen, die nicht direkt konvertiert werden können.

Lösung: Konvertieren Sie den Bericht in HTML-Vorlagen, indem Sie ihn im Designer öffnen, das Layout, die Datenverbindungen und die Formatierung dokumentieren und dann als HTML/CSS-Vorlagen neu erstellen. Verwenden Sie Razor für die Datenbindung in komplexen Szenarien.

Ausgabe 2: Bindung von Datenquellen

Telerik Reporting verwendet SqlDataSource und Objektdatensourcen mit Ausdrucksbindung.

Lösung: Abrufen von Daten in C# und Einbinden in HTML:

var data = await dbContext.Orders.ToListAsync();
var html = $"<table>{string.Join("", data.Select(d => $"<tr><td>{d.Name}</td></tr>"))}</table>";
var data = await dbContext.Orders.ToListAsync();
var html = $"<table>{string.Join("", data.Select(d => $"<tr><td>{d.Name}</td></tr>"))}</table>";
Dim data = Await dbContext.Orders.ToListAsync()
Dim html = $"<table>{String.Join("", data.Select(Function(d) $"<tr><td>{d.Name}</td></tr>"))}</table>"
$vbLabelText   $csharpLabel

Ausgabe 3: Bericht-Parameter

Telerik Reporting verwendet ReportParameter mit integrierter Parameter-UI.

Lösung: Übergeben Sie Parameter direkt an die HTML-Generierung:

public string GenerateReport(string customerId, DateTime fromDate)
{
    return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>";
}
public string GenerateReport(string customerId, DateTime fromDate)
{
    return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>";
}
Public Function GenerateReport(customerId As String, fromDate As DateTime) As String
    Return $"<h1>Report for {customerId}</h1><p>From: {fromDate:d}</p>"
End Function
$vbLabelText   $csharpLabel

Ausgabe 4: Interaktive Funktionen

Telerik Reporting bietet Drilldown, Sortierung und Filterung im Viewer.

Lösung:IronPDF generiert statische PDFs. Um Interaktivität zu gewährleisten, sollten Sie die Daten in Ihrer Web-UI behalten und eine PDF-Datei erzeugen, wenn der Benutzer auf "Exportieren" klickt Dadurch wird eine Trennung zwischen interaktiver Datenexploration und Dokumentenerstellung erreicht.

Telerik-BerichterstattungMigration Checkliste

Vor der Migration anfallende Aufgaben

Überprüfen Sie Ihre Codebasis, um alle Verwendungen von Telerik-Berichterstattungzu identifizieren:

grep -r "using Telerik.Reporting" --include="*.cs" .
grep -r "Report\|ReportProcessor" --include="*.cs" .
grep -r "using Telerik.Reporting" --include="*.cs" .
grep -r "Report\|ReportProcessor" --include="*.cs" .
SHELL

Dokumentieren Sie Datenquellen und Parameter, machen Sie Screenshots von aktuellen Berichtslayouts als visuelle Referenz und identifizieren Sie gemeinsame Berichtskomponenten, die in wiederverwendbare HTML-Vorlagen konvertiert werden können.

Aufgaben der Code-Aktualisierung

  1. Telerik NuGet-Pakete entfernen 2.IronPDF NuGet-Paket installieren
  2. Konvertieren von .trdx Dateien in HTML-Vorlagen
  3. Ersetzen Sie ReportProcessor durch ChromePdfRenderer
  4. Aktualisierung der Datenbindung auf String-Interpolation oder Razor
  5. Konvertieren Sie Kopf-/Fußzeilen in HTML mit HtmlHeaderFooter
  6. Lizenzinitialisierung beim Start hinzufügen

Post-Migrationstests

Überprüfen Sie diese Aspekte nach der Migration:

  • Visueller Vergleich der PDF-Ausgabe mit den Originalberichten
  • Überprüfen der Datengenauigkeit in den generierten PDFs
  • Test der Paginierung für mehrseitige Dokumente
  • Überprüfen Sie, ob die Kopf- und Fußzeilen auf allen Seiten korrekt angezeigt werden
  • Durchführung von Leistungstests für hochvolumige Szenarien

Die wichtigsten Vorteile der Migration zu IronPDF

Der Wechsel von Telerik-Berichterstattungzu IronPDF bietet mehrere Vorteile für Teams, die sich auf die PDF-Erstellung konzentrieren:

Moderne Chromium-Rendering-Engine:IronPDF verwendet dieselbe Rendering-Engine wie Google Chrome, wodurch sichergestellt wird, dass PDFs genau so dargestellt werden, wie der Inhalt in modernen Browsern erscheint. Dank der vollständigen CSS3- und JavaScript-Unterstützung werden Ihre Web-Designs direkt in das PDF-Format übersetzt.

Vereinfachte Lizenzierung:IronPDF bietet Lizenzen pro Entwickler an, ohne dass der Kauf einer kompletten Suite erforderlich ist. Für Teams, die nur die PDF-Erstellung benötigen, bedeutet dies eine erhebliche Kosteneinsparung.

Standard-Webtechnologien: HTML, CSS und JavaScript sind Fähigkeiten, die jeder Webentwickler besitzt. Es müssen keine proprietären Vorlagenformate oder spezielle Designer-Tools erlernt werden.

Geringerer Bereitstellungsaufwand: Da keine Berichtsdienstinfrastruktur und keine Designerkomponenten benötigt werden, sind Bereitstellungen einfacher und schneller.

Aktive Entwicklung: IronPDFs regelmäßige Updates verfolgen aktuelle .NET-Versionen, sodass Projekte auf modernen .NET-Versionen ohne Warten auf eine vierteljährliche Berichtsausgabe unterstützt bleiben.

Hinweis:Telerik ist ein eingetragenes Warenzeichen seines jeweiligen Eigentümers. Diese Website ist nicht mit Progress Software verbunden, wird nicht von dieser befürwortet 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 ...

Weiterlesen

Iron-Support-Team

Wir sind 24 Stunden am Tag, 5 Tage die Woche online.
Chat
E-Mail
Rufen Sie mich an