Wie man von Telerik Reporting zu IronPDF in C# migriert
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 Reporting jedoch oft einen erheblichen Mehraufwand an Lizenzkosten, Bereitstellungskomplexität und Laufzeitaufwand dar.
Dieser Leitfaden bietet einen vollständigen Migrationspfad von Telerik Reporting zu IronPDF, mit Schritt-für-Schritt-Anleitungen, Code-Vergleichen und praktischen Beispielen für professionelle .NET-Entwickler, die diesen Übergang evaluieren.
Warum von Telerik Reporting migrieren
Bei der Entscheidung, von Telerik Reporting zu 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:
Teure Bundle-Lizenzierung: Für Telerik Reporting ist entweder das DevCraft-Bundle (über 1000 US-Dollar pro Entwickler) oder eine Einzellizenz erforderlich. Für Teams, die nur die PDF-Erstellung benötigen, stellt dies eine erhebliche ungenutzte Kapazität dar.
Abhängigkeit des Report Designers: Telerik Reporting erfordert die Installation von Visual Studio-Erweiterungen und Laufzeitkomponenten. Dies erhöht die Komplexität von Entwicklungsumgebungen und CI/CD-Pipelines.
Komplexe Infrastruktur: Für Produktionsumgebungen werden möglicherweise das Hosting von Berichtsdiensten, Verbindungszeichenfolgen und die Konfiguration von Datenquellen benötigt – eine Infrastruktur, die den Wartungsaufwand für einfache PDF-Generierungsaufgaben erhöht.
Proprietäres Format: Die Dateiformate .trdp und .trdx binden Sie an das Telerik-Ökosystem. Das Migrieren oder Ändern von Vorlagen erfordert Telerik-Tools.
Hoher Laufzeitaufwand: Der Bereitstellungsaufwand ist beträchtlich für etwas, das möglicherweise nur einfache HTML-zu-PDF-Konvertierungsanforderungen sind.
Jahresabonnement: Laufende Kosten für Updates und Support erhöhen die Gesamtbetriebskosten.
Wenn Telerik Reporting überflüssig ist
Wenn Sie Telerik Reporting hauptsä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 Reporting | 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 |
HTML/CSS/Razor |
| Lernkurve | Telerik-spezifisch | Standard-Webtechnologien |
| HTML zu PDF | Beschränkt | Vollständige Chromium-Wiedergabe |
| URL zu PDF | Nein | Ja |
| CSS-Unterstützung | Beschränkt | Vollständig CSS3 |
| JavaScript | Nein | Vollständiger ES2024 |
| Digitale Signaturen | Nein | Ja |
| PDF/A | Nein | Ja |
| Laufzeitumfang | Groß | Kleiner |
Schnellstart: Telerik Reporting zu 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 Reporting packages
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
# Remove Telerik Reporting packages
dotnet remove package Telerik.Reporting
dotnet remove package Telerik.Reporting.Services.AspNetCore
dotnet remove package Telerik.ReportViewer.Mvc
IronPDF installieren:
# Install IronPDF
dotnet add package IronPdf
# Install IronPDF
dotnet add package IronPdf
Schritt 2: Namespaces aktualisieren
Ersetzen Sie Telerik-Namensräume durch den IronPDF-Namensraum:
// 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
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"
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
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
Die Telerik-Version erfordert die Erstellung eines TypeReportSource, eines InstanceReportSource, eines Report-Objekts mit einem HtmlTextBox, einem 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
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
Telerik Reporting hat keine native URL-to-PDF-Funktion. Sie müssen HTML-Inhalte manuell mit WebClient abrufen, wodurch externes CSS, JavaScript Ausführung und dynamische Inhalte verloren gehen. Die Methode RenderUrlAsPdf von IronPDF erfasst die gesamte 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
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
Für Telerik Reporting müssen PageHeaderSection und PageFooterSection Objekte erstellt, Unit Messungen konfiguriert, Location und Size Eigenschaften festgelegt und TextBox Elemente mit spezifischen Koordinaten verwaltet werden. IronPDF's HTML-basierter Ansatz verwendet vertraute CSS-Formatierungen 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 Reporting API zu IronPDF Mapping Referenz
Dieses Mapping beschleunigt die Migration, indem es direkte API-Entsprechungen aufzeigt:
| Telerik Reporting | 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 Berichtselement |
HTML <span>, <p>, <div> |
Table Berichtselement |
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 Objektdatenquellen 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>"
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
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 ReportingMigration Checkliste
Vor der Migration anfallende Aufgaben
Überprüfen Sie Ihre Codebasis, um alle Verwendungen von Telerik Reporting zu 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" .
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
- Telerik NuGet-Pakete entfernen
- IronPDF NuGet-Paket installieren
- Konvertieren Sie die Dateien
.trdxin HTML-Vorlagen. - Ersetzen Sie
ReportProcessordurchChromePdfRenderer - Aktualisierung der Datenbindung auf String-Interpolation oder Razor
- Konvertieren Sie Kopf- und Fußzeilen mithilfe von
HtmlHeaderFooterin HTML. - 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 Reporting zu 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 Weiterentwicklung: Da die Verbreitung von .NET 10 und C# 14 bis 2026 zunimmt, gewährleisten die regelmäßigen Updates von IronPDF die Kompatibilität mit aktuellen und zukünftigen .NET Versionen.

