IRONSOFTWAREHOME

En-têtes et pieds de page plus rapides sur de grands PDFs

Curtis Chau
Curtis Chau
Updated: 3 juillet 2026

Ajouter des en-têtes et pieds de page à un PDF très volumineux en un seul passage est lent. Traitez le document en blocs de pages de taille fixe, rendez chaque lot, puis fusionnez les parties pour réduire le temps total de rendu tout en conservant une numérotation continue sur l'ensemble du document.

Solution

1. Diviser les index de pages en lots

Choisissez une taille de bloc et regroupez les index de pages du document en lots de taille fixe, par exemple 300 pages chacun. Les petits blocs se rendent plus rapidement individuellement mais ajoutent plus de travail de fusion à la fin.

2. Copiez chaque lot dans son propre document

Extrayez les pages pour le lot courant avec CopyPages, vous donnant un document autonome à rendre.

3. Rendez les en-têtes et pieds de page avec une numérotation continue

Réglez FirstPageNumber à la page de début du bloc pour que la numérotation s'étende sur tout le document au lieu de recommencer à 1 dans chaque bloc.

4. Enregistrez chaque bloc et disposez-le

Écrivez chaque bloc dans un fichier temporaire et disposez-le. Libérer le bloc avant le lot suivant empêche la mémoire de monter pendant l'exécution.

5. Fusionnez les blocs dans le PDF final

Rouvrez les fichiers temporaires, ajoutez-les dans l'ordre avec AppendPdf, enregistrez le résultat, puis supprimez les fichiers temporaires.

using IronPdf;
var pdf = PdfDocument.FromFile("input.pdf");
string headerHtml = "<div style='font-size:10px;'>Header</div>";
string footerHtml = "<div style='text-align:right;font-size:10px;'>Page {page} of {total-pages}</div>";
int chunkSize = 300;
var pageChunks = Enumerable.Range(0, pdf.PageCount)
    .GroupBy(i => i / chunkSize)
    .Select(g => g.ToArray())
    .ToList();
var tempFiles = new List<string>();
foreach (var indexes in pageChunks)
{
    var chunkPdf = pdf.CopyPages(indexes);
    int globalStartPage = indexes.First() + 1;
    chunkPdf.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
    {
        FirstPageNumber = globalStartPage,          // keeps numbering continuous
        HtmlHeader = new HtmlHeaderFooter { HtmlFragment = headerHtml, MaxHeight = 40 },
        HtmlFooter = new HtmlHeaderFooter { HtmlFragment = footerHtml, MaxHeight = 40 }
    });
    string tempFile = Path.GetTempFileName() + ".pdf";
    chunkPdf.SaveAs(tempFile);
    chunkPdf.Dispose();
    tempFiles.Add(tempFile);
}
// Merge the chunks back into one document.
var finalPdf = new PdfDocument(tempFiles.First());
foreach (var file in tempFiles.Skip(1))
{
    using var part = new PdfDocument(file);
    finalPdf.AppendPdf(part);
}
finalPdf.SaveAs("output.pdf");
finalPdf.Dispose();
// Clean up temp files.
foreach (var file in tempFiles)
    File.Delete(file);
C#

FirstPageNumber est la clé : il est réglé à la page de début globale de chaque bloc, donc un pied de page comme Page {page} of {total-pages} reste cohérent du premier bloc au dernier.

Veuillez noter: Sans FirstPageNumber, chaque bloc redémarre sa numérotation à la page 1.

Conseils de débogage

  • Réglez la taille du bloc : la valeur ci-dessus (300) est ajustable, et le point auquel le fractionnement commence à porter ses fruits dépend de votre charge de travail.
  • Tenez compte de la fusion : le temps total est le rendu par bloc plus la fusion finale, donc intégrez ce passage supplémentaire dans toute comparaison.
  • Gardez la mémoire sous contrôle lors de très gros travaux : forcer périodiquement la collecte des déchets pendant la fusion et régler la piscine du navigateur avec BrowserPool.MaxIdleTabs et MaxDynamicHFPagesPerBatch peut aider.
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

Prêt à commencer ?

Nuget Downloads 21,253,952Version :2026.10vient de sortir

Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.10

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 999 $

Vous avez une question ? Contactez notre équipe de développement.

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
Vos informations seront toujours gardées confidentielles.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
De confiance par des millions d'ingénieurs dans le monde entier
Obtenez votre clé d'essai 30 jours gratuitement.
Aucune carte de crédit ou création de compte requise
Bibliothèque C# NuGet pour PDF
Installer avec NuGet

Version : 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. Dans l'explorateur de solutions, faites un clic droit sur Références, Gestion des packages NuGet
  2. Sélectionnez Parcourir et recherchez « IronPDF »
  3. Sélectionnez le package et installez
C# PDF DLL
Télécharger DLL

Version : 2026.10

ou téléchargez l'installateur Windows ici.

  1. Téléchargez et décompressez IronPDF à un emplacement tel que ~/Libs dans votre répertoire de solution
  2. Dans l'explorateur de solutions Visual Studio, faites un clic droit sur Références. Sélectionnez Parcourir, « IronPDF.dll »

Licences à partir de 999 $