IRONSOFTWAREHOME

Reduce el tamaño del archivo con encabezados y pies de imagen Base64

Curtis Chau
Curtis Chau
Updated: 3 de julio de 2026

Agregar una imagen Base64 a un encabezado o pie de una PDF grande de múltiples páginas puede aumentar dramáticamente el tamaño del archivo de salida. La solución es incrustar la imagen una sola vez en lugar de en cada página, mientras se permite que el texto por página como {page} se renderice normalmente.

El aumento de tamaño ocurre debido a cómo el renderizador maneja un fragmento combinado. Cuando un solo fragmento contiene tanto la imagen como contenido dinámico como {page}, el motor trata todo el HTML como dinámico e incrusta nuevamente la imagen Base64 en cada página. Dividir el trabajo en dos pasadas mantiene la imagen estática y la capa de número de página pequeña.

Solución

1. Divide el encabezado o pie en dos fragmentos

Separa el contenido en un fragmento estático y uno dinámico. Coloca la imagen y cualquier texto que nunca cambie en el fragmento estático. Coloca el contenido por página como {page} en el fragmento dinámico. Dale a ambos fragmentos la misma tabla de distribución y anchos de celda para que el texto dinámico quede correctamente sobre la capa estática.

2. Añade primero el fragmento estático

Llama a AddHtmlHeadersAndFooters solamente con el fragmento estático. La imagen Base64 se renderiza e incrusta una sola vez.

3. Añade el fragmento dinámico en una segunda pasada

Llama a AddHtmlHeadersAndFooters nuevamente solo con el fragmento dinámico. Dado que esta pasada no lleva imagen, el contenido por página permanece pequeño.

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#

Los dos fragmentos table-layout:fixed comparten anchos de celda idénticos, por lo tanto, el número de página en la segunda pasada se ubica exactamente donde estaba la celda vacía en la primera. La misma técnica se aplica a los encabezados: mantén la imagen en la pasada estática y coloca cualquier texto dinámico del encabezado en la segunda pasada.

Advertencia: Si ambos fragmentos no comparten la misma estructura de tabla y anchos de celda, el texto dinámico como el número de página no se alineará sobre la capa estática.

Opción: Referencia una imagen externa o SVG

Si no necesitas la imagen embebida como Base64, apuntar <img> a un archivo externo o usar un SVG puede reducir aún más el tamaño del archivo de salida que una cadena Base64.

Curtis Chau
Escritor Técnico

Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.

...
Leer más

¿Listo para empezar?

Nuget Downloads 21,253,952Versión:2026.10recién publicada

Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.10

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999

Key in blue circle

Obtenga su clave de prueba gratuita de 30 días al instante.

Your trial license will be sent to your email address

Sin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.

bullet_checkedNo se requiere tarjeta de crédito ni creación de cuentaSin limitaciones. 100 % desbloqueado. Sin tarjeta de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Reserve su Demostración en Vivo gratuita
Booking Badge

Confiado por millones de ingenieros en todo el mundo

Logos de clientes de Iron Software
Obtén tu Consulta Sin Compromiso
Tus detalles siempre serán mantenidos confidenciales.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Confiado por millones de ingenieros en todo el mundo
Obtenga su Clave de Prueba de 30 días gratis al instante.
No se requiere tarjeta de crédito ni creación de cuenta
Biblioteca C# NuGet para PDF
Instalar con NuGet

Versión: 2026.10

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. En el Explorador de Soluciones, haga clic derecho en Referencias, Administrar Paquetes NuGet
  2. Seleccione Examinar y busque "IronPDF"
  3. Seleccione el paquete e instale
C# PDF DLL
Descargar DLL

Versión: 2026.10

o descargue el Instalador de Windows aquí.

  1. Descargue y descomprima IronPDF en una ubicación como ~/Libs dentro del directorio de su solución
  2. En el Explorador de Soluciones de Visual Studio, haga clic derecho en Referencias. Seleccione Examinar, "IronPDF.dll"

Licencias desde $999