Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de HiQPdf à IronPDF en C#

Migrer de HiQPdfàIronPDF: Guide de migration complet en C

La migration de HiQPdfversIronPDFtransforme votre flux de travail PDF .NET d'un ancien moteur de rendu basé sur WebKit avec des limites de pages restrictives à une bibliothèque moderne alimentée par Chromium avec une prise en charge complète du cadre JavaScript. Ce guide fournit un chemin de migration complet, étape par étape, qui élimine la limitation à 3 pages et la structure fragmentée des packages pour les développeurs .NET professionnels.

Pourquoi migrer de HiQPdfvers IronPDF

Les limites de HiQPdf

HiQPdf est une bibliothèque HTML-to-PDF commerciale qui présente plusieurs limitations qui affectent les applications de production :

  1. Version "gratuite" restrictive : la version gratuite impose une limite de 3 pages avec des filigranes intrusifs - inutilisable pour les charges de travail de production nécessitant une génération complète de documents.

  2. Moteur WebKit plus ancien : HiQPdfutilise un moteur de rendu plus ancien basé sur WebKit qui a du mal avec les frameworks JavaScript modernes tels que React, Angular et Vue.

  3. Prise en charge de .NET Core peu claire : La documentation ne clarifie pas explicitement la prise en charge de .NET Core / .NET 5+, ce qui crée une incertitude pour le développement d'applications modernes.

  4. Paquets fragmentés : Les multiples packages NuGet pour différentes plateformes (HiQPdf, HiQPdf.Free, HiQPdf.NetCore, HiQPdf.NetCore.x64, HiQPdf.Client) compliquent la gestion des dépendances.

  5. Application complexe : Requiert une configuration verbeuse par le biais des chaînes de propriétés Document, Header, Footer plutôt que des méthodes fluides et intuitives.

  6. <Prise en charge limitée de JavaScript : le moteur WebKit éprouve des difficultés à rendre le contenu généré par les cadres JavaScript modernes et les mises en page dynamiques complexes.

Comparaison HiQPdfvs IronPDF

Aspect HiQPdf IronPDF
Moteur de rendu Basé sur WebKit (plus ancien) Chrome moderne
Niveau gratuit limite de 3 pages + filigrane essai complet de 30 jours
Prise en charge de JS moderne Limité Complet (React, Angular, Vue)
prise en charge de .NET Core/5+ Plusieurs paquets nécessaires Paquet unique et unifié
Conception de l'API Chaînes de propriétés complexes API propre et fluide
Prise en charge CSS3 Partiel Prise en charge complète
Documentation Fragmenté Complet
Paquet NuGet Plusieurs variantes Paquet unique

Pour les équipes qui prévoient d'adopter .NET 10 et C# 14 jusqu'en 2025 et 2026,IronPDFconstitue une base à l'épreuve du temps avec une prise en charge documentée des dernières versions de .NET et un moteur de rendu moderne Chromium.


Évaluation de la complexité de la migration

Estimation de l'effort par fonctionnalité

Fonction Complexité de la migration Notes
HTML vers PDF Très faible Remplacement direct de la méthode
URL vers PDF Très faible Remplacement direct de la méthode
Fusionner des PDF Faible Approche différente de la fusion
En-têtes/Pieds de page Moyen Modification de la syntaxe des espaces réservés
Taille de la page/marges Faible Mêmes unités (mm)
TriggerMode/Delays Faible Cartographie des propriétés

Changement de paradigme

Le changement fondamental dans cette migration HiQPdfest de passer de la configuration de la chaîne de propriétés aux options de rendu fluent :

HiQPdf : converter.Document.Header.Height = 50 ;
          converter.Document.Header.Add(new HtmlToPdfVariableElement(...)) ;

IronPDF : renderer.RenderingOptions.TextHeader = new TextHeaderFooter() { ... } ;

Avant de commencer

Prérequis

  1. <Version .NET :IronPDFprend en charge .NET Framework 4.6.2+ et .NET Core 3.1+ / .NET 5/6/7/8/9+
  2. <Clé de licence : Obtenez votre clé de licenceIronPDFà partir de ironpdf.com
  3. Supprimer HiQPdf : Prévoir la suppression de toutes les variantes du package NuGet HiQPdf

Identifier tous les usages de HiQPdf

# Find HiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .

# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .

# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .

# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
# Find HiQPdfnamespace usage
grep -r "using HiQPdf\|HtmlToPdf\|PdfDocument" --include="*.cs" .

# Find header/footer usage
grep -r "\.Header\.\|\.Footer\.\|HtmlToPdfVariableElement" --include="*.cs" .

# Find placeholder syntax
grep -r "CrtPage\|PageCount" --include="*.cs" .

# Find NuGet references
grep -r "HiQPdf" --include="*.csproj" .
SHELL

Modifications du paquet NuGet

# Remove all HiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf.NetCore
dotnet remove package HiQPdf.NetCore.x64
dotnet remove package HiQPdf.Client

# InstallIronPDF(single package for all platforms)
dotnet add package IronPdf
# Remove all HiQPdfvariants
dotnet remove package HiQPdf
dotnet remove package HiQPdf.Free
dotnet remove package HiQPdf.NetCore
dotnet remove package HiQPdf.NetCore.x64
dotnet remove package HiQPdf.Client

# InstallIronPDF(single package for all platforms)
dotnet add package IronPdf
SHELL

Migration rapide

Étape 1 : Mise à jour de la configuration de la licence

Avant (HiQPdf):

HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";
HtmlToPdf converter = new HtmlToPdf();
converter.SerialNumber = "HIQPDF-SERIAL-NUMBER";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
// Set globally at application startup
IronPdf.License.LicenseKey = "YOUR-IRONPDF-LICENSE-KEY";
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Étape 2 : mise à jour des importations de l'espace de noms

// Before (HiQPdf)
using HiQPdf;

// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;
// Before (HiQPdf)
using HiQPdf;

// After (IronPDF)
using IronPdf;
using IronPdf.Rendering;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Référence API complète

Mappage de la classe principale

Classe HiQPdf Classe IronPDF Notes
HtmlToPdf ChromePdfRenderer Classe de convertisseur principale
Document PDF Document PDF Même nom, espace de noms différent
HtmlToPdfVariableElement TextHeaderFooter ou HtmlHeaderFooter Contenu de l'en-tête/du pied de page

Mise en correspondance des méthodes de conversion

Méthode HiQPdf Méthode IronPDF Notes
ConvertHtmlToMemory(html, baseUrl) RenderHtmlAsPdf(html) Retourne PdfDocument
ConvertUrlToMemory(url) RenderUrlAsPdf(url) Retourne PdfDocument
File.WriteAllBytes(path, bytes) pdf.SaveAs(path) Méthode d'enregistrement direct

Mappage de méthode de document PDF

Méthode HiQPdf Méthode IronPDF Notes
PdfDocument.FromFile(path) PdfDocument.FromFile(path) Même nom de méthode
document1.AddDocument(document2) PdfDocument.Merge(pdf1, pdf2) Méthode de fusion statique
document.WriteToFile(path) pdf.SaveAs(path) Nom de méthode différent

Mappage des espaces réservés de l'en-tête et du pied de page

HiQPdfPlaceholder IronPDFPlaceholder Description du projet
{CrtPage} {page} Numéro de page actuel
{PageCount} {total-pages} Nombre total de pages

Exemples de migration de code

Exemple 1 : Conversion HTML vers PDF

Avant (HiQPdf):

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

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();
        byte[] pdfBuffer = htmlToPdfConverter.ConvertUrlToMemory("https://example.com");
        System.IO.File.WriteAllBytes("output.pdf", pdfBuffer);

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        byte[] pdfFromHtml = htmlToPdfConverter.ConvertHtmlToMemory(html, "");
        System.IO.File.WriteAllBytes("fromhtml.pdf", pdfFromHtml);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

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

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

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

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

        // Convert HTML string
        string html = "<h1>Hello World</h1><p>This is a PDF document.</p>";
        var pdfFromHtml = renderer.RenderHtmlAsPdf(html);
        pdfFromHtml.SaveAs("fromhtml.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

L'approche HiQPdfnécessite la création d'une instance HtmlToPdf, l'appel à ConvertUrlToMemory() ou ConvertHtmlToMemory() pour obtenir un tableau d'octets, puis l'écriture manuelle d'octets dans un fichier. Le ChromePdfRendererd'IronPDF renvoie un objet Document PDFavec une méthode SaveAs() directe, ce qui élimine l'étape d'écriture manuelle du fichier. Le moteur moderne de Chromium offre également un meilleur rendu pour les contenus HTML/CSS/JavaScript complexes. Voir la documentation HTML vers PDF pour des options de rendu supplémentaires.

Exemple 2 : fusionner plusieurs PDF

Avant (HiQPdf):

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

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);

        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);

        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        // Create first PDF
        HtmlToPdf converter1 = new HtmlToPdf();
        byte[] pdf1 = converter1.ConvertHtmlToMemory("<h1>First Document</h1>", "");
        System.IO.File.WriteAllBytes("doc1.pdf", pdf1);

        // Create second PDF
        HtmlToPdf converter2 = new HtmlToPdf();
        byte[] pdf2 = converter2.ConvertHtmlToMemory("<h1>Second Document</h1>", "");
        System.IO.File.WriteAllBytes("doc2.pdf", pdf2);

        // Merge PDFs
        PdfDocument document1 = PdfDocument.FromFile("doc1.pdf");
        PdfDocument document2 = PdfDocument.FromFile("doc2.pdf");
        document1.AddDocument(document2);
        document1.WriteToFile("merged.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");

        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Create first PDF
        var pdf1 = renderer.RenderHtmlAsPdf("<h1>First Document</h1>");
        pdf1.SaveAs("doc1.pdf");

        // Create second PDF
        var pdf2 = renderer.RenderHtmlAsPdf("<h1>Second Document</h1>");
        pdf2.SaveAs("doc2.pdf");

        // Merge PDFs
        var merged = PdfDocument.Merge(pdf1, pdf2);
        merged.SaveAs("merged.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

L'approche HiQPdfnécessite le chargement de documents à partir de fichiers en utilisant PdfDocument.FromFile(), en appelant AddDocument() sur le premier document pour ajouter le second, puis en utilisant WriteToFile() pour sauvegarder.IronPDFfournit une méthode statique PdfDocument.Merge() plus propre qui accepte directement plusieurs objets Document PDF- aucune opération de fichier intermédiaire n'est nécessaire. En savoir plus sur la fusion et la division de PDF.

Exemple 3 : En-têtes et pieds de page PDF avec numéros de page

Avant (HiQPdf):

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

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);

        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);

        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}
// NuGet: Install-Package HiQPdf
using HiQPdf;
using System;

class Program
{
    static void Main()
    {
        HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

        // Add header
        htmlToPdfConverter.Document.Header.Height = 50;
        HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page Header</div>", "");
        htmlToPdfConverter.Document.Header.Add(headerHtml);

        // Add footer with page number
        htmlToPdfConverter.Document.Footer.Height = 50;
        HtmlToPdfVariableElement footerHtml = new HtmlToPdfVariableElement("<div style='text-align:center'>Page {CrtPage} of {PageCount}</div>", "");
        htmlToPdfConverter.Document.Footer.Add(footerHtml);

        byte[] pdfBuffer = htmlToPdfConverter.ConvertHtmlToMemory("<h1>Document with Headers and Footers</h1>", "");
        System.IO.File.WriteAllBytes("header-footer.pdf", pdfBuffer);
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Après (IronPDF):

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        } ;

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        } ;

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
// NuGet: Install-Package IronPdf
using IronPdf;
using IronPdf.Rendering;
using System;

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();

        // Configure header and footer
        renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
        {
            CenterText = "Page Header",
            FontSize = 12
        } ;

        renderer.RenderingOptions.TextFooter = new TextHeaderFooter()
        {
            CenterText = "Page {page} of {total-pages}",
            FontSize = 10
        } ;

        var pdf = renderer.RenderHtmlAsPdf("<h1>Document with Headers and Footers</h1>");
        pdf.SaveAs("header-footer.pdf");
    }
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

L'approche HiQPdfnécessite de définir Document.Header.Height, de créer des objets HtmlToPdfVariableElementet d'appeler Add() sur les sections d'en-tête et de pied de page. Les espaces réservés aux numéros de page utilisent la syntaxe {CrtPage}et {PageCount}.IronPDFfournit une configuration TextHeaderFooter plus propre avec des propriétés CenterText et une syntaxe différente pour les espaces réservés : {page}et {total-pages}. Voir la documentation sur les en-têtes et pieds de page pour des options supplémentaires, notamment les en-têtes basés sur HTML.


Notesde migration essentielles

Modification de la syntaxe des espaces réservés

Le changement le plus important pour les documents comportant des numéros de page est la syntaxe des espaces réservés :

// HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"

//IronPDFplaceholders
"Page {page} of {total-pages}"
// HiQPdfplaceholders
"Page {CrtPage} of {PageCount}"

//IronPDFplaceholders
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Mappage complet des espaces réservés:

  • {CrtPage}{page}
  • {PageCount}{total-pages}

Différence de méthode de fusion

HiQPdf modifie le premier document en place :

// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
// HiQPdf: Modifies document1
document1.AddDocument(document2);
document1.WriteToFile("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

IronPDF renvoie un nouveau document fusionné :

// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
// IronPDF: Returns new document
var merged = PdfDocument.Merge(pdf1, pdf2);
merged.SaveAs("merged.pdf");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Pas de limite de 3 pages

La version gratuite de HiQPdflimite la production à 3 pages avec filigrane.IronPDFgénère des documents complets sans limitations artificielles pendant la période d'essai.

Réutiliser ChromePdfRenderer

Contrairement à HiQPdfoù vous pourriez créer de nouvelles instances HtmlToPdfpour chaque conversion, le ChromePdfRendererd'IronPDF devrait être réutilisé :

// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
// IronPDF: Create once, reuse
var renderer = new ChromePdfRenderer();
var pdf1 = renderer.RenderHtmlAsPdf(html1);
var pdf2 = renderer.RenderHtmlAsPdf(html2);
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Dépannage

Édition 1 : HtmlToPdf introuvable

Problème : la classe HtmlToPdfn'existe pas dans IronPDF.

Solution : Remplacer par ChromePdfRenderer:

// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

// IronPDF
var renderer = new ChromePdfRenderer();
// HiQPdf
HtmlToPdf htmlToPdfConverter = new HtmlToPdf();

// IronPDF
var renderer = new ChromePdfRenderer();
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Édition 2 : ConvertHtmlToMemory introuvable

Problème : la méthode ConvertHtmlToMemory() n'existe pas.

Solution : Utilisez RenderHtmlAsPdf() :

// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;
// HiQPdf
byte[] pdfBytes = converter.ConvertHtmlToMemory(html, "");

// IronPDF
var pdf = renderer.RenderHtmlAsPdf(html);
byte[] pdfBytes = pdf.BinaryData;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Sujet 3 : Les caractères de remplacement des numéros de page ne fonctionnent pas

Problème : {CrtPage}et {PageCount}apparaissent littéralement dans la sortie.

Solution : Mise à jour de la syntaxe des espaces réservés d'IronPDF :

// HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"

//IronPDFsyntax
"Page {page} of {total-pages}"
// HiQPdfsyntax (won't work)
"Page {CrtPage} of {PageCount}"

//IronPDFsyntax
"Page {page} of {total-pages}"
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Edition 4 : HtmlToPdfVariableElement introuvable

Problème : la classe HtmlToPdfVariableElementn'existe pas.

Solution : Utilisez TextHeaderFooter ou HtmlHeaderFooter :

// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);

// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Header",
    FontSize = 12
} ;
// HiQPdf
HtmlToPdfVariableElement headerHtml = new HtmlToPdfVariableElement("<div>Header</div>", "");
converter.Document.Header.Add(headerHtml);

// IronPDF
renderer.RenderingOptions.TextHeader = new TextHeaderFooter()
{
    CenterText = "Header",
    FontSize = 12
} ;
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Liste de contrôle de la migration

Pré-migration

  • [Inventaire de tous les appels API de HiQPdfdans la base de code
  • [Documenter les tailles de page, les marges et les paramètres actuels
  • [Identifier les configurations d'en-tête/de pied de page et les espaces réservés
  • [Obtenir la clé de licence IronPDF
  • [TesterIronPDFdans un environnement de développement

Migration de code

  • [Supprimer tous les paquets NuGet HiQPdf(toutes les variantes)
  • [Installer le paquet NuGet IronPdf : dotnet add package IronPdf
  • [Mise à jour des importations d'espaces de noms
  • [Remplacer HtmlToPdfpar ChromePdfRenderer
  • [Convertissez ConvertHtmlToMemory() en RenderHtmlAsPdf()
  • [Convertissez ConvertUrlToMemory() en RenderUrlAsPdf()
  • [Mise à jour des espaces réservés dans l'en-tête et le pied de page ({CrtPage}{page}, {PageCount}{total-pages})
  • [Remplacer HtmlToPdfVariableElementpar TextHeaderFooter
  • [Mise à jour des opérations de fusion (AddDocumentPdfDocument.Merge)
  • [Ajouter l'initialisation de la clé de licence au démarrage

Testing

  • [Test de conversion HTML vers PDF
  • [Test de conversion d'URL en PDF
  • [Vérifier le rendu de l'en-tête et du pied de page
  • [Vérifier les espaces réservés aux numéros de page
  • [Test de fusion de PDF
  • [Tester les pages contenant beaucoup de JavaScript (désormais pris en charge par Chromium)

Post-Migration

  • [Supprimer le numéro de série de HiQPdfde la configuration
  • [Mise à jour de la documentation
  • [La traduction doit rester professionnelle et préserver l'exactitude technique tout en expliquant les caractéristiques et les avantages de ces outils de développement

Conclusion

La migration de HiQPdfversIronPDFoffre plusieurs avantages significatifs pour les applications .NET. Vous bénéficiez d'un moteur de rendu Chromium moderne avec une prise en charge complète de React, Angular, Vue et des frameworks JavaScript complexes. La limitation à 3 pages avec filigrane disparaît, remplacée par un véritable essai complet. Un seul package NuGet unifié remplace les variantes fragmentées de HiQPdf.

Les principaux changements apportés à cette migration sont les suivants :

  1. Remplacement de classe : HtmlToPdfChromePdfRenderer
  2. Remplacement de méthode : ConvertHtmlToMemory()RenderHtmlAsPdf().BinaryData
  3. Approche de la fusion : document1.AddDocument(document2)PdfDocument.Merge(pdf1, pdf2)
  4. Syntaxe des espaces réservés : {CrtPage}{page}, {PageCount}{total-pages}
  5. Header/Footer : HtmlToPdfVariableElementTextHeaderFooter

Explorez la documentation complète IronPDF, tutoriel, et référence API pour accélérer votre migration vers IronPdf.

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