Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von FastReport zu IronPDF in C# migriert

FastReport.NET ist eine leistungsstarke Berichtslösung, die für das .NET-Ökosystem entwickelt wurde und einen visuellen Berichtsdesigner sowie eine bandbasierte Architektur zur Erstellung komplexer datengesteuerter Berichte bietet. FastReport stellt jedoch erhebliche Herausforderungen für moderne PDF-Generierungs-Workflows dar: die Abhängigkeit vom Berichtsdesigner, die die Code-First-Entwicklung einschränkt, eine steile Lernkurve für bandbasierte Konzepte (DataBand, PageHeaderBand), begrenzte CSS-Unterstützung mit proprietärer Formatierung, komplexe Datenbindung mit RegisterData()-Boilerplate und fragmentierte NuGet-Pakete, die mehrere Installationen erfordern. Dieser umfassende Leitfaden bietet einen schrittweisen Migrationspfad von FastReport zu IronPDF- einer Allzweck-PDF-Bibliothek, die HTML/CSS-Webtechnologien für eine flexible, programmatische Dokumentenerstellung nutzt.

Warum von FastReport zu IronPDF migrieren?

Die Spezialisierung von FastReport.NET auf das Berichtswesen schafft Reibungsverluste für Entwicklungsteams, die eine vielseitige PDF-Erstellung benötigen. Das Verständnis dieser architektonischen Unterschiede ist für die Planung Ihrer Migration unerlässlich.

Die FastReport-Herausforderungen

  1. Abhängigkeit vom Report Designer: Die Erstellung komplexer Layouts erfordert den visuellen Designer oder tiefgreifende Kenntnisse der .frx-Dateistruktur – nicht geeignet für Code-First-Entwicklungsansätze.

  2. Steile Lernkurve: Die bandbasierte Architektur von FastReport(DataBand, PageHeaderBand, PageFooterBand) erfordert das Verständnis berichtspezifischer Konzepte, die sich nicht auf andere Technologien übertragen lassen.

  3. Eingeschränkte CSS-Unterstützung: Webstandard-Styling wird nicht nativ unterstützt; die Gestaltung erfolgt durch das proprietäre Format von FastReport und nicht durch das bekannte CSS.

  4. Komplexe Datenbindung: RegisterData() und DataSource-Verbindungen erfordern zusätzlichen Code für einfache PDF-Generierungsszenarien.

  5. Fragmentierte Pakete: Mehrere NuGet Pakete werden für die volle Funktionalität benötigt (FastReport.OpenSource, FastReport.OpenSource.Export.PdfSimple usw.).

  6. Lizenzierungskomplexität: Die Open-Source-Version hat einen eingeschränkten Funktionsumfang; kommerzielle Version für PDF-Verschlüsselung, digitale Signierung und Schrifteinbettung erforderlich.

Architektur-Vergleich

Aspekt FastReport IronPDF
Gestaltungsansatz Visueller Designer + .frx-Dateien HTML/CSS (Webtechnologien)
Lernkurve Steil (bandbasierte Konzepte) Sanft (HTML/CSS-Kenntnisse)
Datenbindung RegisterData(), DataBand String-Interpolation, Razor, Templating
CSS-Unterstützung Beschränkt Vollständiges CSS3 mit Flexbox/Grid
Package Model Mehrere Pakete Einzelnes Paket (alle Funktionen)
Rendering Engine Benutzerdefiniert Neuestes Chromium
PDF-Bearbeitung Exportorientiert Vollständig (Zusammenführen, Teilen, Sicherheit, Formulare)
Modernes .NET .NET Standard 2.0 .NET 6/7/8/9+ nativ

Wichtige Vorteile der Migration

  1. Webtechnologien: Verwenden Sie vertrautes HTML/CSS anstelle proprietärer bandbasierter Layouts.
  2. Code-First-Entwicklung: PDFs programmatisch generieren, ohne Abhängigkeit von einem visuellen Designer
  3. Einzelpaket: Ein NuGet Paket enthält alle PDF-Funktionen.
  4. Modernes Rendering: Neueste Chromium-Engine für pixelgenaue CSS3-Ausgabe
  5. Umfassende PDF-Bearbeitung: Zusammenführen, Aufteilen, Sicherheitseinstellungen, Formulare – nicht nur Exportieren

Vorbereitung auf die Migration

Voraussetzungen

Stellen Sie sicher, dass Ihre Umgebung diese Anforderungen erfüllt:

  • .NET Framework 4.6.2+ oder .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ oder VS Code mit C#-Erweiterung
  • NuGet Package Manager Zugang
  • IronPDF-Lizenzschlüssel (kostenlose Testversion erhältlich unter ironpdf.com)

Audit FastReportVerwendung

Führen Sie diese Befehle in Ihrem Lösungsverzeichnis aus, um alle FastReport-Referenzen zu identifizieren:

# Find all FastReport references
grep -r "FastReport\|\.frx\|PDFExport\|PDFSimpleExport\|DataBand\|RegisterData" --include="*.cs" --include="*.csproj" .

# Check NuGet packages
dotnet list package | grep FastReport
# Find all FastReport references
grep -r "FastReport\|\.frx\|PDFExport\|PDFSimpleExport\|DataBand\|RegisterData" --include="*.cs" --include="*.csproj" .

# Check NuGet packages
dotnet list package | grep FastReport
SHELL

Dokumentieren Sie Ihre Berichtsvorlagen

Vor der Migration sollten alle .frx-Dateien und ihre Zwecke katalogisiert werden:

  • Name und Zweck des Berichts
  • Verwendete Datenquellen
  • Konfiguration der Kopf-/Fußzeilen
  • Anforderungen an die Seitennummerierung
  • Besondere Formatierung oder Stilisierung

Verständnis des Paradigmenwechsels

Die wichtigste Änderung bei der Migration von FastReport zu IronPDF ist der grundlegende Designansatz. FastReport verwendet ein bandbasiertes visuelles Design mit .frx Vorlagendateien und proprietären Konzepten wie DataBand, PageHeaderBand und RegisterData().IronPDF verwendet HTML/CSS-Webtechnologien, die den meisten Entwicklern bereits bekannt sind.

Das bedeutet, dass FastReport-Bandkonfigurationen in HTML-Vorlagen umgewandelt werden, RegisterData() durch direkte Datenbindung über String-Interpolation oder Razor-Vorlagen ersetzt wird und PageHeaderBand/PageFooterBand in HTML-basierte Kopf- und Fußzeilen umgewandelt werden.

Schritt-für-Schritt-Migrationsprozess

Schritt 1: NuGet-Pakete aktualisieren

Entfernen Sie alle FastReport-Pakete und installieren Sie IronPDF:

# Remove all FastReport packages
dotnet remove package FastReport.OpenSource
dotnet remove package FastReport.OpenSource.Export.PdfSimple
dotnet remove package FastReport.OpenSource.Web
dotnet remove package FastReport.OpenSource.Data.MsSql

# Install IronPDF(includes all features)
dotnet add package IronPdf
# Remove all FastReport packages
dotnet remove package FastReport.OpenSource
dotnet remove package FastReport.OpenSource.Export.PdfSimple
dotnet remove package FastReport.OpenSource.Web
dotnet remove package FastReport.OpenSource.Data.MsSql

# Install IronPDF(includes all features)
dotnet add package IronPdf
SHELL

Schritt 2: Namensraumreferenzen aktualisieren

Ersetzen Sie FastReport-Namensräume durch IronPDF:

// Remove these
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;

// Add this
using IronPdf;
// Remove these
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;

// Add this
using IronPdf;
Imports IronPdf
$vbLabelText   $csharpLabel

Schritt 3: Lizenz konfigurieren

// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
// Add at application startup (Program.cs or Startup.cs)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' Add at application startup (Program.vb or Startup.vb)
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Komplette API-Migrationsreferenz

Kernklassen-Zuordnung

FastReport-Klasse IronPDF-Äquivalent
Report ChromePdfRenderer
PDFExport ChromePdfRenderer + SecuritySettings
PDFSimpleExport ChromePdfRenderer
ReportPage HTML <body> oder <div>
TextObject HTML <p>, <span>, <div>
HTMLObject Direkte HTML-Wiedergabe
PageHeaderBand HtmlHeaderFooter
PageFooterBand HtmlHeaderFooter

Methoden-Mapping

FastReport-Methode IronPDF-Äquivalent
report.Load("template.frx") HTML-Vorlagendatei oder String
report.RegisterData(data, "name") String-Interpolation oder Razor
report.Prepare() Nicht anwendbar
report.Export(export, stream) pdf.SaveAs(path)

Konvertierung von Seitenzahlen-Platzhaltern

FastReport und IronPDF verwenden unterschiedliche Platzhalter-Syntaxen für Seitenzahlen:

FastReport IronPDF
[Page] {page}
[TotalPages] {total-pages}

Beispiele für die Code-Migration

HTML-zu-PDF-Konvertierung

Dieses Beispiel verdeutlicht den grundlegenden Unterschied zwischen dem HTMLObject-Ansatz von FastReport und dem direkten Rendering von IronPDF.

FastReport-Implementierung:

// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;

class Program
{
    static void Main()
    {
        using (Report report = new Report())
        {
            // Create HTML object
            FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
            htmlObject.Width = 500;
            htmlObject.Height = 300;
            htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>";

            // Prepare report
            report.Prepare();

            // Export to PDF
            PDFSimpleExport pdfExport = new PDFSimpleExport();
            using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
            {
                report.Export(pdfExport, fs);
            }
        }
    }
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;

class Program
{
    static void Main()
    {
        using (Report report = new Report())
        {
            // Create HTML object
            FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
            htmlObject.Width = 500;
            htmlObject.Height = 300;
            htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>";

            // Prepare report
            report.Prepare();

            // Export to PDF
            PDFSimpleExport pdfExport = new PDFSimpleExport();
            using (FileStream fs = new FileStream("output.pdf", FileMode.Create))
            {
                report.Export(pdfExport, fs);
            }
        }
    }
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO

Class Program
    Shared Sub Main()
        Using report As New Report()
            ' Create HTML object
            Dim htmlObject As New FastReport.HTMLObject()
            htmlObject.Width = 500
            htmlObject.Height = 300
            htmlObject.Text = "<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>"

            ' Prepare report
            report.Prepare()

            ' Export to PDF
            Dim pdfExport As New PDFSimpleExport()
            Using fs As New FileStream("output.pdf", FileMode.Create)
                report.Export(pdfExport, fs)
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF-Implementierung:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>");
        pdf.SaveAs("output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>");
        pdf.SaveAs("output.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<html><body><h1>Hello World</h1><p>This is a test PDF</p></body></html>")
        pdf.SaveAs("output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

FastReport erfordert die Erstellung eines Report-Objekts, eines HTMLObjekts mit festen Abmessungen, die Vorbereitung des Reports und den Export per Stream - sieben Zeilen Code mit using-Anweisungen.IronPDF erreicht das gleiche Ergebnis in drei Zeilen mit direktem HTML-Rendering. Weitere Optionen finden Sie in der HTML zu PDF Dokumentation.

URL zu PDF-Konvertierung

In diesem Beispiel wird deutlich, dass FastReport einen manuellen HTML-Download erfordert, während IronPDF das URL-Rendering nativ handhabt.

FastReport-Implementierung:

// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
using System.Net;

class Program
{
    static void Main()
    {
        // Download HTML content from URL
        string htmlContent;
        using (WebClient client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }

        using (Report report = new Report())
        {
            FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
            htmlObject.Width = 800;
            htmlObject.Height = 600;
            htmlObject.Text = htmlContent;

            report.Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();
            using (FileStream fs = new FileStream("webpage.pdf", FileMode.Create))
            {
                report.Export(pdfExport, fs);
            }
        }
    }
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;
using System.Net;

class Program
{
    static void Main()
    {
        // Download HTML content from URL
        string htmlContent;
        using (WebClient client = new WebClient())
        {
            htmlContent = client.DownloadString("https://example.com");
        }

        using (Report report = new Report())
        {
            FastReport.HTMLObject htmlObject = new FastReport.HTMLObject();
            htmlObject.Width = 800;
            htmlObject.Height = 600;
            htmlObject.Text = htmlContent;

            report.Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();
            using (FileStream fs = new FileStream("webpage.pdf", FileMode.Create))
            {
                report.Export(pdfExport, fs);
            }
        }
    }
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO
Imports System.Net

Class Program
    Shared Sub Main()
        ' Download HTML content from URL
        Dim htmlContent As String
        Using client As New WebClient()
            htmlContent = client.DownloadString("https://example.com")
        End Using

        Using report As New Report()
            Dim htmlObject As New FastReport.HTMLObject()
            htmlObject.Width = 800
            htmlObject.Height = 600
            htmlObject.Text = htmlContent

            report.Prepare()

            Dim pdfExport As New PDFSimpleExport()
            Using fs As New FileStream("webpage.pdf", FileMode.Create)
                report.Export(pdfExport, fs)
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF-Implementierung:

// NuGet: Install-Package IronPdf
using IronPdf;

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

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

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

FastReport erfordert das manuelle Herunterladen von HTML-Inhalten mit WebClient und das anschließende Einbetten in ein HTMLObject mit festen Abmessungen - ein Workaround, der die Ausführung von JavaScript oder relativen Ressourcen-URLs nicht korrekt handhabt.IronPDF rendert die Webseite direkt live mit vollständiger JavaScript Ausführung mithilfe der Chromium-Engine. Weitere Optionen finden Sie in der Dokumentation zur PDF-URL .

Kopf- und Fußzeilen mit Seitenzahlen

Dieses Beispiel verdeutlicht den Komplexitätsunterschied zwischen dem bandbasierten System von FastReport und dem HTML-basierten Ansatz von IronPDF.

FastReport-Implementierung:

// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;

class Program
{
    static void Main()
    {
        using (Report report = new Report())
        {
            report.Load("template.frx");

            // Set report page properties
            FastReport.ReportPage page = report.Pages[0] as FastReport.ReportPage;

            // Add page header
            FastReport.PageHeaderBand header = new FastReport.PageHeaderBand();
            header.Height = 50;
            FastReport.TextObject headerText = new FastReport.TextObject();
            headerText.Text = "Document Header";
            header.Objects.Add(headerText);
            page.Bands.Add(header);

            // Add page footer
            FastReport.PageFooterBand footer = new FastReport.PageFooterBand();
            footer.Height = 50;
            FastReport.TextObject footerText = new FastReport.TextObject();
            footerText.Text = "Page [Page]";
            footer.Objects.Add(footerText);
            page.Bands.Add(footer);

            report.Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();
            using (FileStream fs = new FileStream("report.pdf", FileMode.Create))
            {
                report.Export(pdfExport, fs);
            }
        }
    }
}
// NuGet: Install-Package FastReport.OpenSource
using FastReport;
using FastReport.Export.PdfSimple;
using System.IO;

class Program
{
    static void Main()
    {
        using (Report report = new Report())
        {
            report.Load("template.frx");

            // Set report page properties
            FastReport.ReportPage page = report.Pages[0] as FastReport.ReportPage;

            // Add page header
            FastReport.PageHeaderBand header = new FastReport.PageHeaderBand();
            header.Height = 50;
            FastReport.TextObject headerText = new FastReport.TextObject();
            headerText.Text = "Document Header";
            header.Objects.Add(headerText);
            page.Bands.Add(header);

            // Add page footer
            FastReport.PageFooterBand footer = new FastReport.PageFooterBand();
            footer.Height = 50;
            FastReport.TextObject footerText = new FastReport.TextObject();
            footerText.Text = "Page [Page]";
            footer.Objects.Add(footerText);
            page.Bands.Add(footer);

            report.Prepare();

            PDFSimpleExport pdfExport = new PDFSimpleExport();
            using (FileStream fs = new FileStream("report.pdf", FileMode.Create))
            {
                report.Export(pdfExport, fs);
            }
        }
    }
}
Imports FastReport
Imports FastReport.Export.PdfSimple
Imports System.IO

Class Program
    Shared Sub Main()
        Using report As New Report()
            report.Load("template.frx")

            ' Set report page properties
            Dim page As FastReport.ReportPage = TryCast(report.Pages(0), FastReport.ReportPage)

            ' Add page header
            Dim header As New FastReport.PageHeaderBand()
            header.Height = 50
            Dim headerText As New FastReport.TextObject()
            headerText.Text = "Document Header"
            header.Objects.Add(headerText)
            page.Bands.Add(header)

            ' Add page footer
            Dim footer As New FastReport.PageFooterBand()
            footer.Height = 50
            Dim footerText As New FastReport.TextObject()
            footerText.Text = "Page [Page]"
            footer.Objects.Add(footerText)
            page.Bands.Add(footer)

            report.Prepare()

            Dim pdfExport As New PDFSimpleExport()
            Using fs As New FileStream("report.pdf", FileMode.Create)
                report.Export(pdfExport, fs)
            End Using
        End Using
    End Sub
End Class
$vbLabelText   $csharpLabel

IronPDF-Implementierung:

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>");
        pdf.SaveAs("report.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>");
        pdf.SaveAs("report.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        Dim renderer = 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("<html><body><h1>Report Content</h1><p>This is the main content.</p></body></html>")
        pdf.SaveAs("report.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

FastReport erfordert das Laden einer Vorlagendatei, das Gießen von Seitenobjekten, das Erstellen von Bandobjekten, das Festlegen von Höhen, das Erstellen von Textobjekten, das Hinzufügen zu Bandsammlungen und das Hinzufügen von Bändern zu Seiten.IronPDF verwendet HtmlHeaderFooter mit einfachen HTML-Fragmenten – Sie können Kopf- und Fußzeilen mit vollständigem CSS gestalten. Beachten Sie die Änderung der Seitenzahlensyntax: [Page] wird zu {page} und [TotalPages] wird zu {total-pages}. Weitere Optionen finden Sie in der Kopf- und Fußzeilen-Dokumentation.

Kritische Hinweise zur Migration

Keine .frx-Vorlagendateien

FastReport-Vorlagen (.frx) können nicht mit IronPDF verwendet werden. Konvertieren Sie Ihre Layouts in HTML/CSS-Vorlagen:

// FastReport- loads .frx template
report.Load("report.frx");

//IronPDF- use HTML template
var html = File.ReadAllText("template.html");
var pdf = renderer.RenderHtmlAsPdf(html);
// FastReport- loads .frx template
report.Load("report.frx");

//IronPDF- use HTML template
var html = File.ReadAllText("template.html");
var pdf = renderer.RenderHtmlAsPdf(html);
' FastReport- loads .frx template
report.Load("report.frx")

' IronPDF- use HTML template
Dim html As String = File.ReadAllText("template.html")
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

Datenbindungskonvertierung

Ersetzen Sie RegisterData() durch direkte HTML-Generierung:

// FastReport
report.RegisterData(dataSet, "Data");
report.GetDataSource("Data").Enabled = true;

//IronPDF- use string interpolation or StringBuilder
var html = new StringBuilder();
foreach (var item in data)
{
    html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>");
}
var pdf = renderer.RenderHtmlAsPdf(html.ToString());
// FastReport
report.RegisterData(dataSet, "Data");
report.GetDataSource("Data").Enabled = true;

//IronPDF- use string interpolation or StringBuilder
var html = new StringBuilder();
foreach (var item in data)
{
    html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>");
}
var pdf = renderer.RenderHtmlAsPdf(html.ToString());
Imports System.Text

' FastReport
report.RegisterData(dataSet, "Data")
report.GetDataSource("Data").Enabled = True

' IronPDF - use string interpolation or StringBuilder
Dim html As New StringBuilder()
For Each item In data
    html.Append($"<tr><td>{item.Name}</td><td>{item.Value}</td></tr>")
Next
Dim pdf = renderer.RenderHtmlAsPdf(html.ToString())
$vbLabelText   $csharpLabel

Sicherheitseinstellungen

//IronPDF security
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "password";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
//IronPDF security
var pdf = renderer.RenderHtmlAsPdf(html);
pdf.SecuritySettings.UserPassword = "password";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
'IronPDF security
Dim pdf = renderer.RenderHtmlAsPdf(html)
pdf.SecuritySettings.UserPassword = "password"
pdf.SecuritySettings.OwnerPassword = "ownerPassword"
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights
$vbLabelText   $csharpLabel

Ausführliche Informationen zu den Sicherheitsoptionen finden Sie in der Dokumentation zur Verschlüsselung .

Post-Migrations-Checkliste

Überprüfen Sie nach Abschluss der Codemigration Folgendes:

  • Visueller Vergleich der generierten PDFs
  • Überprüfen Sie Kopf- und Fußzeilen sowie Seitenzahlen
  • Test mit Produktionsdatenmengen
  • Sicherheits-/Verschlüsselungsfunktionen überprüfen
  • Leistungsvergleich
  • Entfernen Sie nicht verwendete .frx-Vorlagendateien
  • FastReport-bezogenen Code löschen
  • Dokumentation aktualisieren

Zukunftssicherheit für Ihre PDF-Infrastruktur

Angesichts der bevorstehenden Entwicklung von .NET 10 und der Einführung neuer Sprachfunktionen in C# 14 ist die Wahl einer PDF-Bibliothek, die moderne Webtechnologien unterstützt, eine wichtige Voraussetzung für die langfristige Wartbarkeit. Der HTML/CSS-Ansatz von IronPDF bedeutet, dass Ihre Vorlagen die gleichen Fähigkeiten nutzen, die in der Webentwicklung verwendet werden - keine proprietären, bandbasierten Konzepte, die sich nicht auf andere Technologien übertragen lassen. Da sich die Projekte bis ins Jahr 2025 und 2026 erstrecken, bietet die Möglichkeit, Standard-HTML-Vorlagen mit CSS3-Funktionen wie Flexbox und Grid zu verwenden, eine Design-Flexibilität, die die proprietäre Formatierung von FastReport nicht bieten kann.

Zusätzliche Ressourcen


Die Migration von FastReport zu IronPDF beseitigt die Abhängigkeit vom visuellen Designer, die bandbasierte Lernkurve und das fragmentierte Paketmodell. Der Übergang zur HTML/CSS-basierten PDF-Generierung nutzt vertraute Webtechnologien und bietet gleichzeitig alle Funktionen zur PDF-Bearbeitung - Zusammenführen, Teilen, Sicherheit und Formulare - in einem einzigen Paket.

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