Zum Fußzeileninhalt springen
MIGRATIONSLEITFäDEN

Wie man von Syncfusion PDF zu IronPDF in C# migriert

Full Comparison

Looking for a detailed feature-by-feature breakdown? See how IronPDF stacks up against Syncfusion PDF on pricing, HTML support, and licensing.

View Full Comparison

Die Migration von Syncfusion PDF Framework zu IronPDF verwandelt Ihren PDF-Erzeugungsworkflow von einer koordinatenbasierten Grafik-API, die in einer großen Suite gebündelt ist, in eine eigenständige, HTML/CSS-basierte Bibliothek mit modernem Chromium-Rendering. Dieser Leitfaden bietet einen vollständigen, schrittweisen Migrationspfad, der die Lizenzierung nur für die Suite, komplexe Bereitstellungsanforderungen und koordinatenbasierte Positionierung eliminiert.

Warum von Syncfusion PDF zu IronPDF migrieren

Verstehen Sie Syncfusion PDF Framework

Das Syncfusion PDF Framework ist eine umfassende Bibliothek, die eine breite Palette von Funktionen für die Erstellung, Bearbeitung und Sicherung von PDF-Dokumenten mit C# bietet. Es ist Teil des Essential Studio von Syncfusion, das über tausend Komponenten für verschiedene Plattformen umfasst.

Einer der größten Nachteile ist jedoch, dass es nicht als eigenständiges Produkt erworben werden kann; entwickler müssen die gesamte Suite von Syncfusion-Komponenten kaufen. Diese Anforderung kann für Teams, die nur an PDF-Funktionen interessiert sind, mühsam sein, zumal dieses Paket möglicherweise Werkzeuge enthält, die für ihre Projekte nicht erforderlich sind.

Das Bündel-Lizenzierungsproblem

Das Lizenzierungsmodell von Syncfusion stellt Teams, die nur die PDF-Funktionalität benötigen, vor große Herausforderungen:

  1. Nur Suite-Kauf: Die PDF-Bibliothek kann nicht separat erworben werden – es muss das gesamte Essential Studio erworben werden.
  2. Einschränkungen der Community-Lizenz: Die kostenlose Stufe erfordert sowohl einen Umsatz von unter 1 Million US-Dollar als auch weniger als 5 Entwickler.
  3. Lizenzierung komplexer Bereitstellungen: Unterschiedliche Lizenzen für Web-, Desktop- und Serverbereitstellungen
  4. Jährliche Verlängerung erforderlich: Abonnementmodell mit jährlichen Kosten
  5. Preisgestaltung pro Entwickler: Die Kosten skalieren linear mit der Teamgröße
  6. Überladene Suite : Enthält über 1000 Komponenten, die Sie möglicherweise nicht benötigen

Vergleich zwischen Syncfusion PDF und IronPDF

Aspekt Syncfusion PDF IronPDF
Kaufmodell Nur Suite-Bundle Eigenständig
Lizenzierung Komplexe Ebenen Einfach pro Entwickler
Gemeinschaftsgrenze <$1M AND <5 devs Kostenlose Testversion, dann Lizenz
Einsatz Mehrere Lizenztypen Eine Lizenz deckt alle
API-Stil Koordinatenbasierte Grafiken HTML/CSS-first
HTML-Unterstützung Benötigt BlinkBinaries Natives Chromium
CSS-Unterstützung Beschränkt Vollständig CSS3/Flexbox/Grid
Abhängigkeiten Mehrere Pakete Einzelne NuGet
Suite-Anforderung Ja (gesamte Suite) Nein
Fokus auf PDF Breit gefächert; teil einer größeren Suite Eng gefasst; PDF-fokussiert

IronPDF bietet einen gezielteren Ansatz, indem es seine PDF-Funktionen als eigenständiges Produkt anbietet. Dieser Unterschied wirkt sich sowohl auf die Kosten als auch auf die Einfachheit der Integration aus.

Für Teams, die die Einführung von .NET 10 und C# 14 bis 2025 und 2026 planen, bietet IronPDF mit seiner eigenständigen Lizenzierung und dem HTML/CSS-first-Ansatz Flexibilität ohne Abhängigkeiten von der Suite.


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

# Remove Syncfusion packages
dotnet remove package Syncfusion.Pdf.Net.Core
dotnet remove package Syncfusion.HtmlToPdfConverter.Net.Windows
dotnet remove package Syncfusion.Licensing

# Install IronPDF
dotnet add package IronPdf
# Remove Syncfusion packages
dotnet remove package Syncfusion.Pdf.Net.Core
dotnet remove package Syncfusion.HtmlToPdfConverter.Net.Windows
dotnet remove package Syncfusion.Licensing

# Install IronPDF
dotnet add package IronPdf
SHELL

Lizenz-Konfiguration

Syncfusion:

// Must register before any Syncfusion calls
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-SYNCFUSION-KEY");
// Must register before any Syncfusion calls
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-SYNCFUSION-KEY");
' Must register before any Syncfusion calls
Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense("YOUR-SYNCFUSION-KEY")
$vbLabelText   $csharpLabel

IronPDF:

// One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY";
// One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY";
' One-time at startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-KEY"
$vbLabelText   $csharpLabel

Komplette API-Referenz

Namensraumänderungen

// Before: Syncfusion PDF
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Parsing;
using Syncfusion.HtmlConverter;
using Syncfusion.Drawing;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
// Before: Syncfusion PDF
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Pdf.Parsing;
using Syncfusion.HtmlConverter;
using Syncfusion.Drawing;

// After: IronPDF
using IronPdf;
using IronPdf.Rendering;
Imports IronPdf
Imports IronPdf.Rendering
$vbLabelText   $csharpLabel

Kern-API-Zuordnungen

Syncfusion IronPDF
PdfDocument ChromePdfRenderer
PdfLoadedDocument PdfDocument.FromFile()
HtmlToPdfConverter ChromePdfRenderer
graphics.DrawString() HTML-Textelemente
graphics.DrawImage() <img> Tag
PdfGrid HTML <table>
PdfStandardFont CSS font-family
PdfBrushes.Black CSS color: black
document.Security pdf.SecuritySettings
PdfTextExtractor pdf.ExtractAllText()
ImportPageRange() PdfDocument.Merge()
document.Save(stream) pdf.SaveAs(path)
document.Close(true) Nicht erforderlich

Beispiele für die Code-Migration

Beispiel 1: Konvertierung von HTML/URL in PDF

Vor (Syncfusion PDF):

// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.HtmlConverter;
using Syncfusion.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        // Initialize HTML to PDF converter
        HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();

        // Convert URL to PDF
        PdfDocument document = htmlConverter.Convert("https://www.example.com");

        // Save the document
        FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
        document.Save(fileStream);
        document.Close(true);
        fileStream.Close();
    }
}
// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.HtmlConverter;
using Syncfusion.Pdf;
using System.IO;

class Program
{
    static void Main()
    {
        // Initialize HTML to PDF converter
        HtmlToPdfConverter htmlConverter = new HtmlToPdfConverter();

        // Convert URL to PDF
        PdfDocument document = htmlConverter.Convert("https://www.example.com");

        // Save the document
        FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
        document.Save(fileStream);
        document.Close(true);
        fileStream.Close();
    }
}
Imports Syncfusion.HtmlConverter
Imports Syncfusion.Pdf
Imports System.IO

Module Program
    Sub Main()
        ' Initialize HTML to PDF converter
        Dim htmlConverter As New HtmlToPdfConverter()

        ' Convert URL to PDF
        Dim document As PdfDocument = htmlConverter.Convert("https://www.example.com")

        ' Save the document
        Dim fileStream As New FileStream("Output.pdf", FileMode.Create)
        document.Save(fileStream)
        document.Close(True)
        fileStream.Close()
    End Sub
End Module
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Create a PDF from a URL
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        // Save the PDF
        pdf.SaveAs("Output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;

class Program
{
    static void Main()
    {
        // Create a PDF from a URL
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderUrlAsPdf("https://www.example.com");

        // Save the PDF
        pdf.SaveAs("Output.pdf");
    }
}
Imports IronPdf

Class Program
    Shared Sub Main()
        ' Create a PDF from a URL
        Dim renderer = New ChromePdfRenderer()
        Dim pdf = renderer.RenderUrlAsPdf("https://www.example.com")

        ' Save the PDF
        pdf.SaveAs("Output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Dieses Beispiel veranschaulicht die grundlegenden API-Unterschiede. Syncfusion PDF benötigt eine HtmlToPdfConverter Instanz, ruft Convert() auf, die eine PdfDocument zurückgibt, erstellt dann manuell eine FileStream, speichert und schließt sowohl das Dokument als auch den Stream.

IronPDF verwendet ChromePdfRenderer mit RenderUrlAsPdf() in nur drei Codezeilen. Keine FileStream Verwaltung, keine Close() Aufrufe—IronPDF übernimmt die Bereinigung automatisch. Umfassende Beispiele finden Sie in der HTML to PDF Dokumentation.

Beispiel 2: PDF aus Text erstellen

Vor (Syncfusion PDF):

// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
using System.IO;

class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();

        // Add a page
        PdfPage page = document.Pages.Add();

        // Create a font
        PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12);

        // Draw text
        page.Graphics.DrawString("Hello, World!", font, PdfBrushes.Black, new PointF(10, 10));

        // Save the document
        FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
        document.Save(fileStream);
        document.Close(true);
        fileStream.Close();
    }
}
// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Graphics;
using Syncfusion.Drawing;
using System.IO;

class Program
{
    static void Main()
    {
        // Create a new PDF document
        PdfDocument document = new PdfDocument();

        // Add a page
        PdfPage page = document.Pages.Add();

        // Create a font
        PdfFont font = new PdfStandardFont(PdfFontFamily.Helvetica, 12);

        // Draw text
        page.Graphics.DrawString("Hello, World!", font, PdfBrushes.Black, new PointF(10, 10));

        // Save the document
        FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
        document.Save(fileStream);
        document.Close(true);
        fileStream.Close();
    }
}
Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Graphics
Imports Syncfusion.Drawing
Imports System.IO

Module Program
    Sub Main()
        ' Create a new PDF document
        Dim document As New PdfDocument()

        ' Add a page
        Dim page As PdfPage = document.Pages.Add()

        ' Create a font
        Dim font As PdfFont = New PdfStandardFont(PdfFontFamily.Helvetica, 12)

        ' Draw text
        page.Graphics.DrawString("Hello, World!", font, PdfBrushes.Black, New PointF(10, 10))

        ' Save the document
        Dim fileStream As New FileStream("Output.pdf", FileMode.Create)
        document.Save(fileStream)
        document.Close(True)
        fileStream.Close()
    End Sub
End Module
$vbLabelText   $csharpLabel

Nach (IronPDF):

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

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");

        // Save the document
        pdf.SaveAs("Output.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;

class Program
{
    static void Main()
    {
        // Create a PDF from HTML string
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>");

        // Save the document
        pdf.SaveAs("Output.pdf");
    }
}
Imports IronPdf
Imports IronPdf.Rendering

Class Program
    Shared Sub Main()
        ' Create a PDF from HTML string
        Dim renderer As New ChromePdfRenderer()
        Dim pdf = renderer.RenderHtmlAsPdf("<h1>Hello, World!</h1>")

        ' Save the document
        pdf.SaveAs("Output.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Syncfusion PDF verwendet ein koordinatenbasiertes Grafikmodell. Sie erstellen ein PdfDocument, fügen ein PdfPage hinzu, erstellen ein PdfFont mit PdfFontFamily.Helvetica und rufen dann page.Graphics.DrawString() mit expliziten Koordinaten (new PointF(10, 10)), Schriftart und Pinsel (PdfBrushes.Black) auf. Schließlich verwalten Sie die Erstellung und Entsorgung von FileStream.

IronPDF verwendet einen HTML/CSS-first-Ansatz. Instead of coordinates, you write <h1>Hello, World!</h1> and let CSS handle positioning, fonts, and colors. Dieser Ansatz ist einfacher, leichter zu pflegen und nutzt die Fähigkeiten, die Entwickler bereits besitzen. Erfahren Sie mehr in unseren Tutorials.

Beispiel 3: Zusammenführen von PDF-Dokumenten

Vor (Syncfusion PDF):

// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Parsing;
using System.IO;

class Program
{
    static void Main()
    {
        // Load the first PDF document
        FileStream stream1 = new FileStream("Document1.pdf", FileMode.Open, FileAccess.Read);
        PdfLoadedDocument loadedDocument1 = new PdfLoadedDocument(stream1);

        // Load the second PDF document
        FileStream stream2 = new FileStream("Document2.pdf", FileMode.Open, FileAccess.Read);
        PdfLoadedDocument loadedDocument2 = new PdfLoadedDocument(stream2);

        // Merge the documents
        PdfDocument finalDocument = new PdfDocument();
        finalDocument.ImportPageRange(loadedDocument1, 0, loadedDocument1.Pages.Count - 1);
        finalDocument.ImportPageRange(loadedDocument2, 0, loadedDocument2.Pages.Count - 1);

        // Save the merged document
        FileStream outputStream = new FileStream("Merged.pdf", FileMode.Create);
        finalDocument.Save(outputStream);

        // Close all documents
        finalDocument.Close(true);
        loadedDocument1.Close(true);
        loadedDocument2.Close(true);
        stream1.Close();
        stream2.Close();
        outputStream.Close();
    }
}
// NuGet: Install-Package Syncfusion.Pdf.Net.Core
using Syncfusion.Pdf;
using Syncfusion.Pdf.Parsing;
using System.IO;

class Program
{
    static void Main()
    {
        // Load the first PDF document
        FileStream stream1 = new FileStream("Document1.pdf", FileMode.Open, FileAccess.Read);
        PdfLoadedDocument loadedDocument1 = new PdfLoadedDocument(stream1);

        // Load the second PDF document
        FileStream stream2 = new FileStream("Document2.pdf", FileMode.Open, FileAccess.Read);
        PdfLoadedDocument loadedDocument2 = new PdfLoadedDocument(stream2);

        // Merge the documents
        PdfDocument finalDocument = new PdfDocument();
        finalDocument.ImportPageRange(loadedDocument1, 0, loadedDocument1.Pages.Count - 1);
        finalDocument.ImportPageRange(loadedDocument2, 0, loadedDocument2.Pages.Count - 1);

        // Save the merged document
        FileStream outputStream = new FileStream("Merged.pdf", FileMode.Create);
        finalDocument.Save(outputStream);

        // Close all documents
        finalDocument.Close(true);
        loadedDocument1.Close(true);
        loadedDocument2.Close(true);
        stream1.Close();
        stream2.Close();
        outputStream.Close();
    }
}
Imports Syncfusion.Pdf
Imports Syncfusion.Pdf.Parsing
Imports System.IO

Class Program
    Shared Sub Main()
        ' Load the first PDF document
        Dim stream1 As New FileStream("Document1.pdf", FileMode.Open, FileAccess.Read)
        Dim loadedDocument1 As New PdfLoadedDocument(stream1)

        ' Load the second PDF document
        Dim stream2 As New FileStream("Document2.pdf", FileMode.Open, FileAccess.Read)
        Dim loadedDocument2 As New PdfLoadedDocument(stream2)

        ' Merge the documents
        Dim finalDocument As New PdfDocument()
        finalDocument.ImportPageRange(loadedDocument1, 0, loadedDocument1.Pages.Count - 1)
        finalDocument.ImportPageRange(loadedDocument2, 0, loadedDocument2.Pages.Count - 1)

        ' Save the merged document
        Dim outputStream As New FileStream("Merged.pdf", FileMode.Create)
        finalDocument.Save(outputStream)

        ' Close all documents
        finalDocument.Close(True)
        loadedDocument1.Close(True)
        loadedDocument2.Close(True)
        stream1.Close()
        stream2.Close()
        outputStream.Close()
    End Sub
End Class
$vbLabelText   $csharpLabel

Nach (IronPDF):

// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Load PDF documents
        var pdf1 = PdfDocument.FromFile("Document1.pdf");
        var pdf2 = PdfDocument.FromFile("Document2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });

        // Save the merged document
        merged.SaveAs("Merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        // Load PDF documents
        var pdf1 = PdfDocument.FromFile("Document1.pdf");
        var pdf2 = PdfDocument.FromFile("Document2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });

        // Save the merged document
        merged.SaveAs("Merged.pdf");
    }
}
Imports IronPdf
Imports System.Collections.Generic

Class Program
    Shared Sub Main()
        ' Load PDF documents
        Dim pdf1 = PdfDocument.FromFile("Document1.pdf")
        Dim pdf2 = PdfDocument.FromFile("Document2.pdf")

        ' Merge PDFs
        Dim merged = PdfDocument.Merge(New List(Of PdfDocument) From {pdf1, pdf2})

        ' Save the merged document
        merged.SaveAs("Merged.pdf")
    End Sub
End Class
$vbLabelText   $csharpLabel

Der Kontrast bei der Zusammenführung von PDFs ist dramatisch. Syncfusion PDF erfordert das Erstellen von FileStream-Objekten für jedes Eingabedokument, das Laden dieser Objekte als PdfLoadedDocument, das Erstellen eines neuen PdfDocument, das Aufrufen von ImportPageRange() mit Start- und Endindizes für jede Quelle, das Erstellen einer Ausgabe FileStream und das anschließende Schließen von sechs separaten Objekten (finalDocument, loadedDocument1, loadedDocument2, stream1, stream2, outputStream).

IronPDF verwendet PdfDocument.FromFile() zum Laden jedes PDFs und eine statische PdfDocument.Merge() Methode, die eine Liste von Dokumenten akzeptiert. Keine Stream-Verwaltung, keine manuellen Berechnungen des Seitenbereichs, keine knappen Ergebnisse.


Schlüsselunterschiede in der API-Philosophie

Koordinatenbasiert vs. HTML/CSS-First

Syncfusion PDF verwendet ein koordinatenbasiertes Grafikmodell, das von traditionellen PDF-Bibliotheken übernommen wurde:

// Syncfusion: Handbuch positioning
page.Graphics.DrawString("Text", font, PdfBrushes.Black, new PointF(100, 200));
page.Graphics.DrawRectangle(brush, new RectangleF(50, 50, 200, 100));
// Syncfusion: Handbuch positioning
page.Graphics.DrawString("Text", font, PdfBrushes.Black, new PointF(100, 200));
page.Graphics.DrawRectangle(brush, new RectangleF(50, 50, 200, 100));
' Syncfusion: Handbuch positioning
page.Graphics.DrawString("Text", font, PdfBrushes.Black, New PointF(100, 200))
page.Graphics.DrawRectangle(brush, New RectangleF(50, 50, 200, 100))
$vbLabelText   $csharpLabel

IronPDF verwendet HTML/CSS für das Layout:

// IronPDF: CSS-based positioning
var html = @"
<div style='margin: 50px; padding: 20px; border: 1px solid black;'>
    <p style='color: black;'>Text</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
// IronPDF: CSS-based positioning
var html = @"
<div style='margin: 50px; padding: 20px; border: 1px solid black;'>
    <p style='color: black;'>Text</p>
</div>";
var pdf = renderer.RenderHtmlAsPdf(html);
' IronPDF: CSS-based positioning
Dim html As String = "
<div style='margin: 50px; padding: 20px; border: 1px solid black;'>
    <p style='color: black;'>Text</p>
</div>"
Dim pdf = renderer.RenderHtmlAsPdf(html)
$vbLabelText   $csharpLabel

Der HTML/CSS-Ansatz ist für Webentwickler intuitiver, leichter zu pflegen und führt zu konsistenten Ergebnissen bei unterschiedlichen Seitengrößen.

Stream Management vs. automatische Bereinigung

Syncfusion PDF erfordert eine explizite Stream- und Dokumentenentsorgung:

// Syncfusion: Handbuch cleanup
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();
// Syncfusion: Handbuch cleanup
FileStream fileStream = new FileStream("Output.pdf", FileMode.Create);
document.Save(fileStream);
document.Close(true);
fileStream.Close();
' Syncfusion: Handbuch cleanup
Dim fileStream As New FileStream("Output.pdf", FileMode.Create)
document.Save(fileStream)
document.Close(True)
fileStream.Close()
$vbLabelText   $csharpLabel

IronPDF übernimmt die Bereinigung automatisch:

// IronPDF: Automatischcleanup
pdf.SaveAs("Output.pdf");
// IronPDF: Automatischcleanup
pdf.SaveAs("Output.pdf");
$vbLabelText   $csharpLabel

Funktionsvergleich

Feature Syncfusion PDF IronPDF
Standalone kaufen Nein (nur Suite) Ja
Lizenzierung Kommerziell mit Einschränkungen für die Gemeinschaft Vereinfachte kommerzielle
HTML zu PDF Benötigt BlinkBinaries Natives Chromium
CSS3-Unterstützung Beschränkt Vollständig (Flexbox, Grid)
API-Stil Koordinatenbasierte Grafiken HTML/CSS-first
Stream Management Handbuch Automatisch
Abhängigkeiten Mehrere Pakete Einzelne NuGet
Bereitstellungskomplexität Potentiell komplex Unkompliziert

Migrations-Checkliste

Vor der Migration

  • Erfassung aller Syncfusion PDF-Nutzungen im Quellcode
  • Kosten für die Dokumentenlizenzierung und Bereitstellungsanforderungen
  • Identifizieren Sie die Verwendungen von PdfGrid, PdfGraphics und HtmlToPdfConverter
  • Den IronPDF Lizenzschlüssel erhalten Sie unter IronPDF

Code-Aktualisierungen

  • Syncfusion Pakete entfernen (Syncfusion.Pdf.Net.Core, Syncfusion.HtmlToPdfConverter.Net.Windows, Syncfusion.Licensing)
  • Installieren Sie das NuGet Paket IronPdf
  • Namespace-Importe aktualisieren (using Syncfusion.Pdf;using IronPdf;)
  • Ersetzen Sie Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense() durch IronPdf.License.LicenseKey = "..."
  • Ersetzen Sie HtmlToPdfConverter.Convert() durch ChromePdfRenderer.RenderUrlAsPdf() oder RenderHtmlAsPdf()
  • Ersetzen Sie PdfDocument + Pages.Add() + Graphics.DrawString() durch ChromePdfRenderer.RenderHtmlAsPdf()
  • Ersetzen Sie PdfLoadedDocument durch PdfDocument.FromFile()
  • Ersetzen Sie ImportPageRange() durch PdfDocument.Merge()
  • Ersetzen Sie document.Save(stream) durch pdf.SaveAs(path)
  • Entfernen Sie alle document.Close(true)- und stream.Close()-Aufrufe
  • Ersetzen Sie PdfGrid durch HTML-Elemente <table>
  • Ersetzen Sie PdfStandardFont durch CSS font-family
  • Ersetzen Sie PdfBrushes durch die CSS-Eigenschaften color

Testen

  • Visueller Vergleich der PDF-Ausgabe
  • Überprüfung der Verbesserungen beim CSS-Rendering (Flexbox, Grid funktionieren jetzt)
  • Testtextextraktion
  • Zusammenführung und Aufteilung testen
  • Leistungsvergleich

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