Passer au contenu du pied de page
VIDéOS

Comment ajouter une signature numérique à un PDF en C# à l'aide de iTextSharp | IronPDF

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

La migration de Syncfusion PDFFramework vers IronPDF transforme votre flux de production de PDF, passant d'une API graphique basée sur les coordonnées et intégrée à une grande suite à une bibliothèque autonome, HTML/CSS d'abord, avec un rendu moderne de Chromium. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine les licences pour les suites uniquement, les exigences de déploiement complexes et le positionnement basé sur les coordonnées.

Pourquoi migrer de Syncfusion PDFà IronPDF

Comprendre Syncfusion PDFFramework

Le Syncfusion PDFFramework est une bibliothèque complète qui offre un large éventail de fonctionnalités pour la création, l'édition et la sécurisation de documents PDF à l'aide de C#. Ce logiciel fait partie de Essential Studio de Syncfusion, qui comprend plus d'un millier de composants pour de multiples plateformes.

La bibliothèque PDF ne peut pas être achetée comme un composant unique. Syncfusion propose désormais une offre "Document SDK" qui regroupe les bibliothèques PDF, Word, Excel et PowerPoint sans les composants de l'interface utilisateur, aux côtés de l'ensemble complet Essential Studio. Les équipes qui ont besoin uniquement de la fonctionnalité PDF doivent prendre le Document SDK au minimum, ce qui peut être encombrant lorsque les autres bibliothèques de documents ne sont pas utilisées.

Le problème des licences d'offres groupées

Le modèle de licence de Syncfusion crée des défis importants pour les équipes qui n'ont besoin que de la fonctionnalité PDF :

  1. Pas d'achat au détail : PDF est intégré au Document SDK (PDF + Word + Excel + PowerPoint) ou au studio Essential complet — il ne peut pas être licencié seul
  2. Restrictions de la licence communautaire : Le niveau gratuit nécessite un chiffre d'affaires annuel <$1M, ≤5 développeurs ET ≤10 employés au total, ainsi qu'un plafond de 3M$ de capital externe à vie
  3. Licences de déploiement complexes : différentes licences pour les déploiements web, de bureau et serveur
  4. Renouvellement annuel requis : Modèle d'abonnement avec des coûts annuels (durée minimale de 1 an)
  5. Tarification par développeur : les coûts augmentent proportionnellement à la taille de l'équipe
  6. Encombrement du package : Document SDK intègre des dépendances Word/Excel/PowerPoint, même si vous n'avez besoin que de PDF ; le studio complet Essential ajoute plus de 1000 composants d'interface utilisateur en plus

Comparaison de Syncfusion PDFet IronPDF

Aspect Syncfusion PDF IronPDF
Modèle d'achat Pack Document SDK ou studio Essential complet (pas de SKU par bibliothèque) Autonome
Licence Niveaux complexes Simple par développeur
Limite de la communauté <$1M revenue, ≤5 devs, ≤10 employees, ≤$3M outside capital Essai gratuit, puis licence
Déploiement Plusieurs types de licences Une licence couvre l'ensemble des
Style API Graphiques basés sur coordonnées + convertisseur HTML HTML/CSS d'abord
HTML Engine Blink (NuGets séparés Windows/Linux/Mac) Chromium intégré
Support CSS Moderne (Blink) — proche de la parité avec Chromium CSS3 complet/flexbox/grid
Dépendances Plusieurs paquets NuGet simple
Exigence de package Oui (Document SDK or Essential Studio) Non
Focus sur le PDF Large ; faisant partie d'un package plus large Étroite ; Axé sur le PDF

IronPDF propose une approche plus ciblée en offrant ses fonctionnalités PDF en tant que produit autonome. Cette différence a un impact significatif sur les coûts et la facilité d'intégration.

Pour les équipes adoptant le .NET moderne, la licence autonome d'IronPDF et son approche d'abord HTML/CSS offrent une flexibilité sans dépendances aux packages.


Avant de commencer

Prérequis

  1. Environnement .NET : .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. Accès à NuGet : possibilité d'installer des packages NuGet
  3. Licence IronPDF : Obtenez votre clé de licence sur IronPDF

Modifications du paquet NuGet

# 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

Configuration de la licence

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-LICENSE-KEY";
// One-time at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY";
' One-time at startup
IronPdf.License.LicenseKey = "YOUR-LICENSE-KEY"
$vbLabelText   $csharpLabel

Référence API complète

Modifications de l'espace de nommage

// 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

Mappages de l'API de base

Syncfusion IronPDF
PdfDocument ChromePdfRenderer
PdfLoadedDocument PdfDocument.FromFile()
HtmlToPdfConverter ChromePdfRenderer
graphics.DrawString() Éléments de texte HTML
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) Pas nécessaire

Exemples de migration de code

Exemple 1 : Conversion HTML/URL vers PDF

Avant (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

Après (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

Cet exemple illustre les différences fondamentales entre les API. Syncfusion PDFnécessite une instance de HtmlToPdfConverter, en appelant Convert() qui renvoie un PdfDocument, puis en créant manuellement un FileStream, en enregistrant et en fermant à la fois le document et le flux.

IronPDF utilise un ChromePdfRenderer avec RenderUrlAsPdf() en seulement trois lignes de code. Pas de gestion FileStream, pas d'appels Close()—IronPDF gère automatiquement le nettoyage. Consultez la documentation HTML vers PDF pour des exemples complets.

Exemple 2 : Création d'un PDF à partir d'un texte

Avant (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

Après (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 utilise un modèle graphique basé sur les coordonnées. Vous créez un PdfDocument, ajoutez un PdfPage, créez un PdfFont avec PdfFontFamily.Helvetica, puis appelez page.Graphics.DrawString() avec des coordonnées explicites (new PointF(10, 10)), une police et un pinceau (PdfBrushes.Black). Enfin, vous gérez la création et l'élimination de FileStream.

IronPDF utilise une approche HTML/CSS d'abord. Instead of coordinates, you write <h1>Hello, World!</h1> and let CSS handle positioning, fonts, and colors. Cette approche est plus simple, plus facile à maintenir et tire parti des compétences que les développeurs possèdent déjà. Pour en savoir plus, consultez nos tutoriels.

Exemple 3 : Fusionner des documents PDF

Avant (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

Après (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

Le contraste dans la fusion des PDF est spectaculaire. Syncfusion PDFnécessite la création des objets FileStream pour chaque document d'entrée, les chargeant sous forme de PdfLoadedDocument, créant un nouveau PdfDocument, appelant ImportPageRange() avec des indices de début et de fin pour chaque source, créant un FileStream de sortie, puis fermant six objets distincts (finalDocument, loadedDocument1, loadedDocument2, stream1, stream2, outputStream).

IronPDF utilise PdfDocument.FromFile() pour charger chaque PDF et une méthode statique PdfDocument.Merge() qui accepte une liste de documents. Pas de gestion de flux, pas de calcul manuel de l'intervalle de pages, pas d'à-peu-près.


Différences clés dans la philosophie des API

Coordonnées vs HTML/CSS d'abord

Syncfusion PDF utilise un modèle graphique basé sur les coordonnées, hérité des bibliothèques PDF traditionnelles :

// Syncfusion: Manuel positioning
page.Graphics.DrawString("Text", font, PdfBrushes.Black, new PointF(100, 200));
page.Graphics.DrawRectangle(brush, new RectangleF(50, 50, 200, 100));
// Syncfusion: Manuel positioning
page.Graphics.DrawString("Text", font, PdfBrushes.Black, new PointF(100, 200));
page.Graphics.DrawRectangle(brush, new RectangleF(50, 50, 200, 100));
' Syncfusion: Manuel 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 utilise HTML/CSS pour la mise en page :

// 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

L'approche HTML/CSS est plus intuitive pour les développeurs web, plus facile à maintenir et produit des résultats cohérents sur différentes tailles de pages.

Gestion des flux de données et nettoyage automatique

Syncfusion PDF nécessite un flux explicite et l'élimination des documents :

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

IronPDF se charge automatiquement du nettoyage :

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

Comparaison des fonctionnalités

Fonction Syncfusion PDF IronPDF
Achat de Standalone Non (Document SDK or Essential Studio) Oui
Licence Commercial avec des restrictions communautaires Commercial simplifié
HTML Engine Blink (NuGets spécifiques à la plateforme) Chromium intégré
Support CSS3 Moderne via Blink Plein (flexbox, grille)
Style API Graphiques basés sur coordonnées + convertisseur HTML HTML/CSS d'abord
Gestion des flux Manuel Automatique
Dépendances Plusieurs paquets NuGet simple
Complexité du déploiement Potentiellement complexe Simplicité

Liste de contrôle de la migration

Pré-migration

  • Recenser toutes les utilisations de Syncfusion PDFdans le code source
  • Coûts de licence des documents et exigences de déploiement
  • Identifier les usages de PdfGrid, PdfGraphics et HtmlToPdfConverter
  • Obtenez votre clé de licence IronPDF sur IronPDF

Mises à jour du code

  • Supprimer les packages Syncfusion (Syncfusion.Pdf.Net.Core, Syncfusion.HtmlToPdfConverter.Net.Windows, Syncfusion.Licensing)
  • Installer le package NuGet IronPdf
  • Mettre à jour les importations de namespace (using Syncfusion.Pdf;using IronPdf;)
  • Remplacer Syncfusion.Licensing.SyncfusionLicenseProvider.RegisterLicense() par IronPdf.License.LicenseKey = "..."
  • Remplacer HtmlToPdfConverter.Convert() par ChromePdfRenderer.RenderUrlAsPdf() ou RenderHtmlAsPdf()
  • Remplacer PdfDocument + Pages.Add() + Graphics.DrawString() par ChromePdfRenderer.RenderHtmlAsPdf()
  • Remplacer PdfLoadedDocument par PdfDocument.FromFile()
  • Remplacer ImportPageRange() par PdfDocument.Merge()
  • Remplacer document.Save(stream) par pdf.SaveAs(path)
  • Retirer tous les appels document.Close(true) et stream.Close()
  • Remplacer PdfGrid par les éléments HTML <table>
  • Remplacer PdfStandardFont par CSS font-family
  • Remplacer PdfBrushes par les propriétés CSS color

Essai

  • Comparaison visuelle des fichiers PDF générés
  • Vérifier les améliorations du rendu CSS (flexbox et grid fonctionnent désormais)
  • Extraction de texte de test
  • Fusion et division des tests
  • Comparaison des performances

[[i :(Syncfusion est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié à, approuvé par ou sponsorisé par Syncfusion. Tous les noms de produits, logos et marques sont la propriété de leurs propriétaires respectifs. Les comparaisons sont à titre informatif uniquement et reflètent les informations publiquement disponibles au moment de l'écriture.)]]

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite

Équipe de soutien Iron

Nous sommes en ligne 24 heures sur 24, 5 jours sur 7.
Chat
Email
Appelez-moi