IRONSOFTWAREHOME
VIDÉOS

Comment gérer les sauts de page HTML en PDF en utilisant C#

Curtis Chau
Curtis Chau
Updated: 18 mai 2026

BitMiracle Docotic PDF est une bibliothèque PDF .NET réputée pour son architecture de code géré à 100 % et ses capacités étendues de manipulation programmatique des PDF. Toutefois, la structure modulaire de ces outils, qui nécessite des modules distincts pour la conversion HTML-PDF, la mise en page et d'autres fonctionnalités, complique la gestion du projet et l'octroi des licences. Ce guide complet fournit un chemin de migration étape par étape de BitMiracle Docotic PDFvers IronPDF- une bibliothèque PDF .NET unifiée avec un rendu HTML intégré basé sur Chromium et toutes les fonctionnalités incluses dans un seul package NuGet.

Pourquoi migrer de BitMiracle Docotic PDFvers IronPDF?

Bien que BitMiracle Docotic PDFoffre de solides fonctionnalités de manipulation de PDF, plusieurs facteurs poussent les équipes de développement à rechercher des alternatives avec une architecture plus rationalisée.

Comparaison de l'architecture des paquets

BitMiracle Docotic PDF utilise une approche modulaire qui nécessite plusieurs packages pour une fonctionnalité complète :

AspectBitMiracle Docotic PDFIronPDF
HTML-à-PDFNécessite un module complémentaire séparé (HtmlToPdf)Fonctionnalité principale intégrée
Structure du paquetCore + plusieurs add-onsPaquet NuGet unique
Modèle de licenceLicence d'utilisation à l'unitéToutes les fonctionnalités sont incluses
Complexité de l'APIEspaces de noms séparés par module complémentaireAPI unifiée
HTML EngineChromium (via un module complémentaire)Chromium (intégré)
Taille de la communautéPlus petitPlus grand, plus de ressources
DocumentationRéférence techniqueTutoriels détaillés

Parité des fonctionnalités

Les deux bibliothèques prennent en charge des fonctionnalités PDF complètes :

FonctionBitMiracle Docotic PDFIronPDF
Créer un PDF à partir de zéro
HTML vers PDF✅(module complémentaire requis)✅(intégré)
URL vers PDF✅(module complémentaire requis)✅(intégré)
Manipulation PDF
Extraction de texte
Fusionner/Séparer
Signatures numériques
Chiffrement
Remplissage de formulaires
Conformité PDF/A

Différences clés dans l'approche

BitMiracle Docotic PDF utilise un dessin basé sur le canevas avec un positionnement par coordonnées (canvas.DrawString(x, y, text)), tandis qu'IronPDF s'appuie sur HTML/CSS pour la mise en page et le positionnement. Il s'agit d'un changement de paradigme qui simplifie la création de contenu pour les développeurs familiarisés avec les technologies web.

Préparation de la migration

Prérequis

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

  • .NET Framework 4.6.2+ ou .NET Core 3.1 / .NET 5-9
  • Visual Studio 2019+ ou VS Code avec l'extension C#
  • Accès au Package Manager NuGet
  • Clé de licence IronPDF(essai gratuit disponible sur ironpdf.com)

Audit de l'utilisation de BitMiracle Docotic PDF

Exécutez ces commandes dans le répertoire de votre solution pour identifier toutes les références à Docotic.Pdf :

# Find all Docotic.Pdf usages in your codebase
grep -r "using BitMiracle.Docotic" --include="*.cs" .
grep -r "PdfDocument\|PdfPage\|PdfCanvas" --include="*.cs" .

# Find NuGet package references
grep -r "Docotic.Pdf" --include="*.csproj" .
SHELL

Modifications importantes à prévoir

ChangementBitMiracle Docotic PDFIronPDFImpact
Rendu HTMLNécessite le module complémentaire HtmlToPdfIntégréSupprimer le paquet de modules complémentaires
Indexation des pages0-based (Pages[0])0-based (Pages[0])Aucune modification n'est nécessaire
Système de coordinationOrigine en bas à gaucheFlux HTML/CSSUtiliser CSS pour le positionnement
Dessin sur toilePdfCanvas.DrawText()Balisage HTMLChangement de paradigme
Extraction de textepage.GetText()pdf.ExtractAllText()Changement de nom de la méthode
Chargement de documentsnew PdfDocument(path)PdfDocument.FromFile(path)Constructeur → méthode statique
Économiedocument.Save(path)pdf.SaveAs(path)Changement de nom de la méthode
DispositionIDisposable modèleNon requisGestion simplifiée des ressources

Processus de migration étape par étape

Étape 1 : Mise à jour des paquets NuGet

Supprimez les paquets BitMiracle Docotic PDFet installez IronPDF:

# Remove Docotic.Pdf packages
dotnet remove package BitMiracle.Docotic.Pdf
dotnet remove package BitMiracle.Docotic.Pdf.HtmlToPdf
dotnet remove package BitMiracle.Docotic.Pdf.Layout

# Install IronPDF
dotnet add package IronPdf
SHELL

Étape 2 : Mise à jour des références aux espaces de noms

Remplacer les espaces de noms PDF de BitMiracle Docotic par IronPDF:

// Remove these
using BitMiracle.Docotic.Pdf;
using BitMiracle.Docotic.Pdf.Layout;
// HtmlConverter from the BitMiracle.Docotic.Pdf.HtmlToPdf NuGet package
// also lives in the BitMiracle.Docotic.Pdf namespace (no extra using needed).

// Add this
using IronPdf;

Étape 3 : configuration de la licence

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

Référence complète de migration des API

Opérations documentaires

TâchesBitMiracle Docotic PDFIronPDF
Créer un document videnew PdfDocument()new PdfDocument()
Charger à partir d'un fichiernew PdfDocument(path)PdfDocument.FromFile(path)
Charger à partir du fluxPdfDocument.Load(stream)PdfDocument.FromStream(stream)
Chargement à partir d'octetsPdfDocument.Load(bytes)PdfDocument.FromBinaryData(bytes)
Enregistrer dans un fichierdocument.Save(path)pdf.SaveAs(path)
Obtenir le nombre de pagesdocument.PageCountpdf.PageCount
Fermer/Disposerdocument.Dispose()Non requis

Conversion HTML en PDF

TâchesBitMiracle Docotic PDF(module complémentaire HtmlToPdf)IronPDF
Chaîne HTML vers PDFawait converter.CreatePdfFromStringAsync(html)renderer.RenderHtmlAsPdf(html)
Fichier HTML vers PDFawait converter.CreatePdfAsync(filePath)renderer.RenderHtmlFileAsPdf(path)
URL vers PDFawait converter.CreatePdfAsync(new Uri(url))renderer.RenderUrlAsPdf(url)
Définir la taille de la pageoptions.Page.SetSize(PdfPaperSize.A4)renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
Définir les margesoptions.Page.MarginTop = 20 (etc.)renderer.RenderingOptions.MarginTop = 20

Opérations de fusion et de division

TâchesBitMiracle Docotic PDFIronPDF
Fusionner des documentsdoc1.Append("file.pdf") (path/Stream/bytes)PdfDocument.Merge(pdf1, pdf2)
Document fractionnédocument.CopyPage(index) vers un nouveau documentpdf.CopyPages(start, end)

Exemples de migration de code

Conversion HTML en PDF

L'opération la plus courante démontre la simplification significative qu'IronPDF apporte.

Mise en œuvre de BitMiracle Docotic PDF:

// NuGet: Install-Package BitMiracle.Docotic.Pdf
// NuGet: Install-Package BitMiracle.Docotic.Pdf.HtmlToPdf  (separate add-on required)
using BitMiracle.Docotic.Pdf;
using System;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        // HtmlConverter is async-only and downloads Chromium on first use
        using var converter = await HtmlConverter.CreateAsync();

        string html = "<html><body><h1>Hello World</h1><p>This is HTML vers PDFconversion.</p></body></html>";

        using var pdf = await converter.CreatePdfFromStringAsync(html);
        pdf.Save("output.pdf");

        Console.WriteLine("PDF created successfully");
    }
}
C#

Mise en œuvre d'IronPDF:

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

class Program
{
    static void Main()
    {
        var renderer = new ChromePdfRenderer();
        string html = "<html><body><h1>Hello World</h1><p>This is HTML vers PDFconversion.</p></body></html>";
        
        var pdf = renderer.RenderHtmlAsPdf(html);
        pdf.SaveAs("output.pdf");
        
        Console.WriteLine("PDF created successfully");
    }
}
C#

IronPDF élimine le besoin de l'instruction using et fournit une classe ChromePdfRenderer dédiée qui indique clairement sa capacité de rendu basée sur Chromium. Pour plus d'options de conversion HTML, consultez la documentation HTML au format PDF.

Fusionner plusieurs fichiers PDF

Mise en œuvre de BitMiracle Docotic PDF:

// NuGet: Install-Package BitMiracle.Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf1 = new PdfDocument("document1.pdf"))
        {
            // PdfDocument.Append accepts a file path, Stream, or byte[] —
            // not another PdfDocument instance.
            pdf1.Append("document2.pdf");
            pdf1.Save("merged.pdf");
        }

        Console.WriteLine("PDFs merged successfully");
    }
}

Mise en œuvre d'IronPDF:

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

class Program
{
    static void Main()
    {
        var pdf1 = PdfDocument.FromFile("document1.pdf");
        var pdf2 = PdfDocument.FromFile("document2.pdf");
        
        var merged = PdfDocument.Merge(new List<PdfDocument> { pdf1, pdf2 });
        merged.SaveAs("merged.pdf");
        
        Console.WriteLine("PDFs merged successfully");
    }
}

La méthode statique Merge d'IronPDF accepte directement plusieurs documents, offrant une API plus propre que le modèle itératif Append. Pour plus d'options, consultez la documentation sur la fusion de fichiers PDF .

Extraction de texte

Mise en œuvre de BitMiracle Docotic PDF:

// NuGet: Install-Package BitMiracle.Docotic.Pdf
using BitMiracle.Docotic.Pdf;
using System;

class Program
{
    static void Main()
    {
        using (var pdf = new PdfDocument("document.pdf"))
        {
            string allText = "";
            
            foreach (var page in pdf.Pages)
            {
                allText += page.GetText();
            }
            
            Console.WriteLine("Extracted text:");
            Console.WriteLine(allText);
        }
    }
}
C#

Mise en œuvre d'IronPDF:

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

class Program
{
    static void Main()
    {
        var pdf = PdfDocument.FromFile("document.pdf");
        string allText = pdf.ExtractAllText();
        
        Console.WriteLine("Extracted text:");
        Console.WriteLine(allText);
    }
}

IronPDF réduit l'extraction de texte d'une boucle de plusieurs lignes à un seul appel de méthode. Pour plus d'options d'extraction, consultez la documentation sur l'extraction de texte .

Protection et chiffrement des mots de passe

Mise en œuvre d'IronPDF:

using IronPdf;

var renderer = new ChromePdfRenderer();
var pdf = renderer.RenderHtmlAsPdf("<h1>Confidential Document</h1>");

// Set security
pdf.SecuritySettings.UserPassword = "userPassword";
pdf.SecuritySettings.OwnerPassword = "ownerPassword";
pdf.SecuritySettings.AllowUserPrinting = PdfPrintSecurity.FullPrintRights;
pdf.SecuritySettings.AllowUserCopyPasteContent = false;

pdf.SaveAs("protected.pdf");

Pour connaître toutes les options de sécurité, consultez la documentation sur le chiffrement .

En-têtes et pieds de page

Mise en œuvre d'IronPDF:

using IronPdf;

var renderer = new ChromePdfRenderer();

renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:12px;'>
            Company Header - Confidential
        </div>",
    DrawDividerLine = true,
    MaxHeight = 30
};

renderer.RenderingOptions.HtmlFooter = new HtmlHeaderFooter
{
    HtmlFragment = @"
        <div style='text-align:center; font-size:10px;'>
            Page {page} of {total-pages}
        </div>",
    DrawDividerLine = true,
    MaxHeight = 25
};

var pdf = renderer.RenderHtmlAsPdf("<h1>Document Content</h1>");
pdf.SaveAs("with_headers.pdf");

IronPDF prend en charge des jetons de remplacement comme {page} et {total-pages} pour la numérotation dynamique des pages. Pour plus d'options, consultez la documentation sur les en-têtes et les pieds de page.

Notes de migration essentielles

Canvas to HTML Paradigm Shift (Changement de paradigme)

L'approche de dessin basée sur le canevas de BitMiracle Docotic PDFdoit être convertie en HTML avec un positionnement CSS :

Modèle PDF docotic BitMiracle :

var canvas = pdfPage.Canvas;
canvas.DrawString(50, 50, "Hello, World!");

Modèle IronPDF:

var html = "<div style='position:absolute; left:50px; top:50px;'>Hello, World!</div>";
var pdf = renderer.RenderHtmlAsPdf(html);

Indexation de la même page

Les deux bibliothèques utilisent un indexage 0-based (Pages[0] est la première page)—aucun changement nécessaire pour le code d'accès aux pages.

L'élimination n'est pas nécessaire

IronPDF ne nécessite pas d'instructions using pour la gestion de mémoire, simplifiant la structure du code :

// BitMiracle Docotic PDF- disposal required
using (var pdf = new PdfDocument("input.pdf"))
{
    // operations
}

//IronPDF- disposal optional
var pdf = PdfDocument.FromFile("input.pdf");
// operations - no using statement needed

Support asynchrone

Le module complémentaire HtmlToPdf de BitMiracle Docotic PDFnécessite des modèles asynchrones partout.IronPDF prend en charge les méthodes synchrones et asynchrones :

// Synchronous
var pdf = renderer.RenderHtmlAsPdf(html);

// Asynchronous
var pdf = await renderer.RenderHtmlAsPdfAsync(html);

Intégration d'ASP.NET Core

Modèle IronPDF:

[ApiController]
[Route("[controller]")]
public class PdfController : ControllerBase
{
    [HttpGet("generate")]
    public IActionResult GeneratePdf()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = renderer.RenderHtmlAsPdf("<h1>Report</h1>");

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

    [HttpGet("generate-async")]
    public async Task<IActionResult> GeneratePdfAsync()
    {
        var renderer = new ChromePdfRenderer();
        var pdf = await renderer.RenderHtmlAsPdfAsync("<h1>Report</h1>");

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

Liste de contrôle post-migration

Après avoir effectué la migration du code, vérifiez les points suivants :

  • Exécutez tous les tests unitaires pour vérifier que la génération de PDF fonctionne correctement.
  • Comparez la qualité de sortie PDF (le moteur Chromium d'IronPDF peut rendre le rendu légèrement différemment, généralement mieux).
  • Vérifier la précision de l'extraction de texte
  • Tester la fonctionnalité de remplissage de formulaires
  • Valider les signatures numériques, le cas échéant
  • Test de performance des opérations par lots
  • Tester dans tous les environnements cibles
  • Mise à jour des pipelines CI/CD
  • Supprimer les fichiers de licence Docotic.Pdf

Ressources supplémentaires


La migration de BitMiracle Docotic PDFvers IronPDF élimine la complexité de la gestion de plusieurs packages complémentaires tout en offrant les mêmes capacités de rendu HTML basées sur Chromium. Le passage du dessin basé sur le canevas au positionnement HTML/CSS tire parti des compétences en développement web que la plupart des développeurs .NET possèdent déjà, ce qui se traduit par un code de génération de PDF plus facile à maintenir.

Veuillez noter: Bitmiracle Docotic.Pdf est une marque déposée de son propriétaire respectif. Ce site n'est pas affilié, soutenu ou sponsorisé par Bit Miracle. 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