IRONSOFTWAREHOME

Réduire la taille du fichier avec des en-têtes et pieds de page d'images Base64

Curtis Chau
Curtis Chau
Updated: 3 juillet 2026

Ajouter une image Base64 à un en-tête ou pied de page sur un PDF multi-pages volumineux peut gonfler le fichier de sortie de manière spectaculaire. La solution consiste à intégrer l'image une seule fois plutôt qu'à chaque page, tout en permettant au texte par page tel que {page} de s'afficher normalement.

Le gonflement se produit à cause de la manière dont le moteur de rendu gère un fragment combiné. Lorsqu'un seul fragment contient à la fois l'image et du contenu dynamique tel que {page}, le moteur traite tout le HTML comme dynamique et réintègre l'image Base64 à chaque page. Diviser le travail en deux passes maintient l'image statique et la couche de numérotation des pages petite.

Solution

1. Divisez l'en-tête ou le pied de page en deux fragments

Séparez le contenu en un fragment statique et un dynamique. Placez l'image et tout texte qui ne change jamais dans le fragment statique. Placez le contenu par page tel que {page} dans le fragment dynamique. Donnez aux deux fragments la même disposition de table et les mêmes largeurs de cellules pour que le texte dynamique se positionne correctement sur la couche statique.

2. Ajoutez d'abord le fragment statique

Appelez AddHtmlHeadersAndFooters uniquement avec le fragment statique. L'image Base64 est rendue et intégrée une seule fois.

3. Ajoutez le fragment dynamique lors d'une seconde passe

Appelez AddHtmlHeadersAndFooters à nouveau uniquement avec le fragment dynamique. Comme cette passe ne transporte pas d'image, le contenu par page reste petit.

using IronPdf;

var pdf = PdfDocument.FromFile("input.pdf");

// Static layer: holds the Base64 image. The page-number cell is left empty.
string staticFooter = @"
<table style='width:100%; table-layout:fixed;'>
  <tr>
    <td style='width:20%;'>
      <img src='data:image/png;base64,iVBORw0KGg...' style='width:150px;' />
    </td>
    <td style='width:80%; text-align:right;'></td>
  </tr>
</table>";

// Dynamic layer: holds only {page}. Same layout, but no image.
string dynamicFooter = $@"
<table style='width:100%; table-layout:fixed;'>
  <tr>
    <td style='width:20%;'></td>
    <td style='width:80%; text-align:right; font-size:10px;'>Page {{page}} of {pdf.PageCount}</td>
  </tr>
</table>";

// Pass 1: add the static image footer (image embedded once).
pdf.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
{
    HtmlFooter = new HtmlHeaderFooter { HtmlFragment = staticFooter, MaxHeight = 40 }
});

// Pass 2: add the dynamic page-number footer (no image, stays small).
pdf.AddHtmlHeadersAndFooters(new ChromePdfRenderOptions
{
    HtmlFooter = new HtmlHeaderFooter { HtmlFragment = dynamicFooter, MaxHeight = 40 }
});

pdf.SaveAs("output.pdf");
C#

Les deux fragments table-layout:fixed partagent des largeurs de cellules identiques, donc le numéro de page dans la seconde passe se place exactement là où la cellule vide était dans la première. La même technique s'applique aux en-têtes : gardez l'image dans la passe statique, et placez tout texte d'en-tête dynamique dans la seconde passe.

Avertissement: Si les deux fragments ne partagent pas la même structure de table et largeurs de cellules, le texte dynamique tel que le numéro de page ne s'alignera pas correctement sur la couche statique.

Option : Référencer une image externe ou un SVG

Si vous n'avez pas besoin de l'image intégrée comme Base64, pointer le <img> vers un fichier externe ou utiliser un SVG peut réduire encore plus la taille de sortie qu'une chaîne Base64.

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 $