IRONSOFTWAREHOME
VIDÉOS

Comment convertir des pages Razor en PDFs dans une application Web ASP .NET Core

Curtis Chau
Curtis Chau
Updated: 19 juillet 2026

Passer d'ABCpdf for .NET à IronPDF constitue une mise à niveau stratégique pour les équipes de développement qui visent une gestion simplifiée des licences, une documentation moderne et une prise en charge native multiplateforme. Ce guide complet propose un parcours de migration étape par étape, avec des correspondances d'API et des exemples de conversion de code issus de scénarios réels.

Que vous travailliez avec le .NET Framework 4.6.2 ou que vous cibliez .NET 9, ce guide de migration ABCpdf garantit une transition facile vers le moteur de rendu basé sur Chrome de IronPDF.

Pourquoi envisager une migration ABCpdf?

ABCpdf de WebSupergoo (version actuelle : v13.4.4, sortie le 9 avril 2026) a été une bibliothèque PDF .NET capable pendant des années. Cependant, plusieurs facteurs rendent IronPDF une alternative attrayante pour les équipes de développement modernes.

Complicité des licences

ABCpdf utilise un modèle de licence par niveaux qui peut nécessiter un certain effort pour naviguer. La licence unique standard pour ordinateur est à $329 (seulement 32 bits) ; Professionnelle est à $479 ; La redistribution professionnelle est à $4 790 ; la licence de groupe atteint $33 530. Les licences sont perpétuelles, et les clés v13 couvrent également v8–v12. De nombreux développeurs signalent que le labyrinthe des niveaux constitue un fardeau administratif significatif lors de la budgétisation des projets.

Architecture d'abord Windows (jusqu'à v13)

ABCpdf a été uniquement pour Windows pendant la majeure partie de son histoire. La prise en charge de Linux a été ajoutée dans la v13 via les packages runtime ABCpdf.ABCChrome117.Linux et ABCpdf.ABCChrome123.Linux. macOS n'est pas pris en charge, et quelques fonctionnalités spécifiques à Windows (XPS, WPF) restent indisponibles sur Linux.

Style de documentation

La documentation d'ABCpdf, bien que complète, suit un style ancien qui peut sembler dépassé par rapport aux normes modernes de documentation des API. Les nouveaux utilisateurs ont souvent du mal à trouver les exemples exacts dont ils ont besoin, en particulier lorsqu'ils travaillent avec les nouvelles versions de .NET.

Configuration générale du moteur

ABCpdf nécessite une sélection explicite de l'engin — EngineType.Chrome123 (par défaut dans v13), Chrome117, Chrome86, Chrome65, Gecko, WebKit, ou MSHtml — et une gestion manuelle des ressources avec des appels doc.Clear(). Les développeurs modernes préféreraient éviter d'ajouter du code standard à chaque opération PDF.

##IronPDF vs ABCpdf : Comparaison des fonctionnalités

Le tableau comparatif suivant met en évidence les principales différences entre les deux bibliothèques PDF .NET :

FonctionABCpdf for .NETIronPDF
Moteur de renduABCChrome (Chrome123/117/86/65), Gecko, WebKit, MSHtmlChromium complet (CSS3, JavaScript)
Cross-PlatformD'abord Windows ; Linux ajouté dans v13 (pas de macOS)Natif Windows, Linux, macOS, Docker
Modèle de licenceStandard 329 $ / Pro 479 $ / Pro Redistribution 4 790 $ / Groupe 33 530 $, perpétuelleTarification simple et transparente
Support .NET.NET Framework 4.0+, .NET Core 3.0+, .NET 5+De .NET 4.6.2 à .NET 9
Gestion des ressourcesManuel doc.Clear() requisIDisposable avec des instructions using
Configuration de la licenceUtilise souvent le registreClé de licence basée sur un code simple
DocumentationStyle désuetDocumentation moderne avec de nombreux exemples

Avant de commencer votre migration

Prérequis

Assurez-vous que votre environnement de développement répond à ces exigences :

  • .NET Framework 4.6.2+ ou .NET Core 3.1+ / .NET 5-9
  • Visual Studio 2019+ ou JetBrains Rider
  • Accès au Package Manager NuGet
  • Clé de licence IronPDF (essai gratuit disponible)

Trouver toutes les références ABCpdf

Exécutez ces commandes dans votre répertoire de solutions pour localiser tous les fichiers utilisant ABCpdf for .NET:

grep -r "using WebSupergoo" --include="*.cs" .
grep -r "ABCpdf" --include="*.csproj" .
SHELL

Cet audit identifie chaque fichier nécessitant une modification, garantissant ainsi une couverture complète de la migration.

Modifications importantes à prévoir

La compréhension des différences architecturales entre ABCpdf for .NETet IronPDF permet d'éviter les surprises lors de la migration :

CatégorieComportement ABCpdfComportement d'IronPDFAction de migration
Modèle d'objetLa classe Doc est centraleChromePdfRenderer + PdfDocumentSéparer le rendu du document
Nettoyage des ressourcesManuel doc.Clear()Modèle IDisposableUtilisez des instructions using
Sélection du moteurdoc.HtmlOptions.Engine = EngineType.Chrome123 (ou MSHtml)Chromium intégréSupprimer la configuration du moteur
Indexation des pagesBasé sur 1 (doc.Page = 1)Basé sur 0 (pdf.Pages[0])Ajuster les références de l'index
CoordonnéesBasé sur des points avec doc.RectMarges basées sur CSSUtiliser CSS ou RenderingOptions

Démarrage rapide : migration en 5 minutes

Étape 1 : Mise à jour des paquets NuGet

# Remove ABCpdf
dotnet remove package ABCpdf

# Install IronPDF
dotnet add package IronPdf
SHELL

Étape 2 : Définissez votre clé de licence

Ajoutez ceci au démarrage de l'application, avant toute opération d'IronPDF :

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

Étape 3 : Recherche et remplacement globaux

Mettez à jour toutes les références aux espaces de noms dans votre base de code :

RechercheRemplacer par
using WebSupergoo.ABCpdf13;using IronPdf;
using WebSupergoo.ABCpdf13.Objects;using IronPdf;
using WebSupergoo.ABCpdf12;using IronPdf;
using WebSupergoo.ABCpdf11;using IronPdf;

Référence API complète

Méthodes de création de documents

Le tableau suivant met en correspondance les méthodes d'ABCpdf for .NET avec leurs équivalents IronPDF:

Méthode ABCpdfMéthode IronPDF
new Doc()new ChromePdfRenderer()
doc.AddImageUrl(url)renderer.RenderUrlAsPdf(url)
doc.AddImageHtml(html)renderer.RenderHtmlAsPdf(html)
doc.AddImageFile(path)renderer.RenderHtmlFileAsPdf(path)
doc.Read(path)PdfDocument.FromFile(path)
doc.Save(path)pdf.SaveAs(path)
doc.GetData()pdf.BinaryData
doc.Clear()Utilisez l'instruction using

Méthodes de manipulation des pages

Méthode ABCpdfMéthode IronPDF
doc.PageCountpdf.PageCount
doc.Page = npdf.Pages[n-1]
doc.Delete(pageId)pdf.RemovePages(index)
doc.Append(otherDoc)PdfDocument.Merge(pdf1, pdf2)
doc.Rect.Inset(x, y)RenderingOptions.MarginTop/Bottom/Left/Right

Sécurité et méthodes de cryptage

Méthode ABCpdfMéthode IronPDF
doc.Encryption.Passwordpdf.SecuritySettings.OwnerPassword
doc.Encryption.CanPrintpdf.SecuritySettings.AllowUserPrinting
doc.Encryption.CanCopypdf.SecuritySettings.AllowUserCopyPasteContent
doc.SetInfo("Title", value)pdf.MetaData.Title

Exemples de migration de code

Exemple 1 : HTML vers PDF à partir d'une URL

Cet exemple montre la conversion d'une page web en PDF, l'une des tâches de génération de PDF les plus courantes.

Implémentation d'ABCpdf for .NET :

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome123;
        doc.AddImageUrl("https://www.example.com");
        doc.Save("output.pdf");
        doc.Clear();
    }
}

Mise en œuvre d'IronPDF:

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

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

L'approche d'IronPDF élimine la nécessité d'une configuration explicite du moteur et d'un nettoyage manuel, réduisant ainsi la complexité du code tout en conservant toutes les capacités de rendu de Chrome.

Exemple 2 : Chaîne HTML vers PDF

La conversion de chaînes HTML en PDF est essentielle pour générer des rapports et des documents dynamiques.

Implémentation d'ABCpdf for .NET :

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        string html = "<html><body><h1>Hello World</h1><p>This is a PDF document.</p></body></html>";
        Doc doc = new Doc();
        doc.HtmlOptions.Engine = EngineType.Chrome123;
        doc.AddImageHtml(html);
        doc.Save("output.pdf");
        doc.Clear();
    }
}

Mise en œuvre d'IronPDF:

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

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

La version IronPDF nécessite moins de lignes de code et utilise le rendu Chrome par défaut, ce qui garantit une sortie cohérente sur toutes les plateformes.

Exemple 3 : fusionner plusieurs PDF

La combinaison de plusieurs documents PDF est une exigence fréquente dans les flux de travail de traitement des documents.

Implémentation d'ABCpdf for .NET :

// NuGet: Install-Package ABCpdf
using System;
using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

class Program
{
    static void Main()
    {
        Doc doc1 = new Doc();
        doc1.Read("document1.pdf");
        
        Doc doc2 = new Doc();
        doc2.Read("document2.pdf");
        
        doc1.Append(doc2);
        doc1.Save("merged.pdf");
        
        doc1.Clear();
        doc2.Clear();
    }
}

Mise en œuvre d'IronPDF:

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

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}

La méthode statique Merge de IronPDF fournit une API plus propre qui accepte plusieurs documents, éliminant le besoin de suivre et de nettoyer les instances individuelles Doc.

Exemple 4 : Modèle de migration complet avec marges

Cet exemple montre une migration complète avant/après pour la génération de PDF avec des marges personnalisées.

Avant (ABCpdf for .NET):

using WebSupergoo.ABCpdf13;
using WebSupergoo.ABCpdf13.Objects;

public byte[] GeneratePdf(string html)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome123;
    doc.Rect.Inset(20, 20);
    doc.AddImageHtml(html);
    byte[] data = doc.GetData();
    doc.Clear();  // Manual cleanup required
    return data;
}

Après (IronPDF):

using IronPdf;

public byte[] GeneratePdf(string html)
{
    var renderer = new ChromePdfRenderer();
    renderer.RenderingOptions.MarginTop = 20;
    renderer.RenderingOptions.MarginBottom = 20;
    renderer.RenderingOptions.MarginLeft = 20;
    renderer.RenderingOptions.MarginRight = 20;

    using var pdf = renderer.RenderHtmlAsPdf(html);
    return pdf.BinaryData;  // Automatic cleanup with 'using'
}

Scénarios de migration avancés

Application Web ASP.NET Core

Pour les équipes construisant des applications web avec .NET 6+, voici le modèle recommandé :

Modèle ABCpdf:

[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    Doc doc = new Doc();
    doc.HtmlOptions.Engine = EngineType.Chrome123;
    doc.AddImageHtml(request.Html);
    byte[] pdfBytes = doc.GetData();
    doc.Clear();

    return File(pdfBytes, "application/pdf", "report.pdf");
}

Modèle IronPDF:

[HttpPost]
public IActionResult GeneratePdf([FromBody] ReportRequest request)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = renderer.RenderHtmlAsPdf(request.Html);

    return File(pdf.BinaryData, "application/pdf", "report.pdf");
}

Génération de PDFs asynchrone

ABCpdf n'a pas de support asynchrone natif.IronPDF fournit des méthodes d'asynchronisme pour une meilleure performance des applications web :

using IronPdf;

public async Task<byte[]> GeneratePdfAsync(string html)
{
    var renderer = new ChromePdfRenderer();
    using var pdf = await renderer.RenderHtmlAsPdfAsync(html);
    return pdf.BinaryData;
}

Configuration de l'injection de dépendance

Enregistrez IronPDF dans les applications .NET modernes en utilisant les modèles C# actuels :

// Program.cs (.NET 6+)
builder.Services.AddSingleton<ChromePdfRenderer>();

// Or create a service wrapper
public interface IPdfService
{
    Task<byte[]> GeneratePdfAsync(string html);
}

public class IronPdfService : IPdfService
{
    private readonly ChromePdfRenderer _renderer;

    public IronPdfService()
    {
        _renderer = new ChromePdfRenderer();
        _renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
    }

    public async Task<byte[]> GeneratePdfAsync(string html)
    {
        using var pdf = await _renderer.RenderHtmlAsPdfAsync(html);
        return pdf.BinaryData;
    }
}

// Register: builder.Services.AddSingleton<IPdfService, IronPdfService>();

Conseils d'optimisation des performances

Réutiliser le moteur de rendu pour les opérations par lots

// Good: Single renderer instance
var renderer = new ChromePdfRenderer();
foreach (var html in htmlList)
{
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

// Bad: New renderer each time (slower startup)
foreach (var html in htmlList)
{
    var renderer = new ChromePdfRenderer(); // Overhead!
    using var pdf = renderer.RenderHtmlAsPdf(html);
    pdf.SaveAs($"output_{i}.pdf");
}

Comparaison de l'utilisation de la mémoire

ScénarioABCpdf for .NETIronPDF
PDF unique de 10 pages~80 MB~50 MB
Lot de 100 PDFÉlevé (nettoyage manuel)~100 MB
HTML volumineux (5MB+)Variable~150 MO

Dépannage des problèmes de migration courants

PDF Rendus vierges

Symptôme: Le PDF de sortie comporte des pages vides après la migration.

**Solution:**Le contenu JavaScript peut ne pas être entièrement chargé avant le rendu :

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.WaitFor.RenderDelay(2000); // Wait 2 seconds
// Or wait for specific element:
renderer.RenderingOptions.WaitFor.HtmlElementById("content-loaded");

Les en-têtes/pieds de page n'apparaissent pas

Symptôme: TextHeader/TextFooter non visible dans la sortie.

Solution: Veiller à ce que les marges laissent de la place pour le contenu de l'en-tête et du pied de page :

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.MarginTop = 40; // mm - leave room for header
renderer.RenderingOptions.MarginBottom = 40; // mm - leave room for footer

renderer.RenderingOptions.TextHeader = new TextHeaderFooter
{
    CenterText = "Header Text",
    FontSize = 12
};

Liste de contrôle de la migration

Pré-migration

  • Auditez toute utilisation d'ABCpdf avec grep -r "WebSupergoo" --include="*.cs" .
  • Documenter les exigences actuelles de sortie PDF
  • Créer des cas de test avec des exemples de fichiers PDF à des fins de comparaison
  • Obtenir une clé de licence IronPDF
  • Code source de sauvegarde

Pendant la migration

  • Supprimer le package NuGet ABCpdf
  • Installez le package NuGet IronPDF
  • Ajouter la clé de licence au démarrage de l'application
  • Mettez à jour toutes les instructions using
  • Convertissez l'instanciation de Doc en ChromePdfRenderer
  • Remplacez doc.Clear() par des instructions using
  • Mettre à jour les appels de méthode par mappage d'API
  • Convertir les mises en page basées sur les coordonnées en marges CSS

Après la migration

  • Exécuter tous les tests PDF existants
  • Comparaison visuelle des fichiers PDF générés (ABCpdf vs IronPDF)
  • Tester tous les flux de travail PDF en phase de test
  • Comparaison des performances
  • Supprimer la configuration de licence ABCpdf
  • Mettre à jour les dépendances du pipeline CI/CD
Veuillez noter: ABCpdf est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié à, endossé par, ou sponsorisé par WebSupergoo Software. 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 et créer des manuels bien structurés et visuellement attrayants.

...
Lire la suite

Articles connexes

Key in blue circle

Obtenez votre clé d'essai de 30 jours instantanément.

Your trial license will be sent to your email address

Aucune restriction. 100 % débloqué. Pas de carte bancaire.

bullet_checkedAucune carte de crédit ou création de compte requiseAucune restriction. 100 % débloqué. Pas de carte bancaire.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Réservez votre Démonstration en direct gratuite
Booking Badge

De confiance par des millions d'ingénieurs dans le monde entier

Logos des clients d'Iron Software
Obtenez Votre Consultation sans Engagement
Remplissez le formulaire ci-dessous ou envoyez un email à sales@ironsoftware.com
Vos informations seront toujours gardées confidentielles.
De confiance par des millions d'ingénieurs dans le monde entier
Logos des clients d'Iron Software
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise