Passer au contenu du pied de page
GUIDES DE MIGRATION

Comment migrer de HiQPdf à IronPDF en C#

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, la rendant pratiquement inutilisable pour les charges de travail de production nécessitant la 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 comme React, Angular et Vue.

  3. Prise en charge imprécise de .NET Core : 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. Packages fragmentés : plusieurs packages NuGet pour différentes plateformes (HiQPdf, HiQPdf.Free, HiQPdf.NetCore, HiQPdf.NetCore.x64, HiQPdf.Client) compliquent la gestion des dépendances.

  5. API complexe : nécessite une configuration détaillée via 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 a des difficultés à afficher le contenu généré par les frameworks 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 de cette migration HiQPdfréside dans le passage d' une configuration de chaîne de propriétés à des options de rendu fluides :

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 licenceIronPDFsur ironpdf.com
  3. Suppression de 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";
$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";
$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;
$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);
    }
}
$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");
    }
}
$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");
    }
}
$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");
    }
}
$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);
    }
}
$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");
    }
}
$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}"
$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");
$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");
$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);
$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();
$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;
$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 le résultat.

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}"
$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
} ;
$vbLabelText   $csharpLabel

Liste de contrôle de la migration

Pré-migration

  • Inventorier tous les appels d'API HiQPdfdans le code source
  • Documenter les dimensions, marges et paramètres actuels des pages
  • Identifier les configurations d'en-tête/de pied de page et les espaces réservés
  • Obtenir une clé de licence IronPDF
  • TesterIronPDFen environnement de développement

Migration de code

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

Essai

  • Tester la conversion de HTML en PDF
  • Test de conversion d'URL en PDF
  • Vérifier l'affichage 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
  • Test des pages riches en JavaScript (désormais prises en charge par Chromium)

Après la migration

  • Supprimer le numéro de série HiQPdfde la configuration
  • Mise à jour de la documentation
  • Surveillez toute différence de rendu

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