IRONSOFTWAREHOME

Reduza o tamanho do arquivo com cabeçalhos e rodapés de imagem Base64

Curtis Chau
Curtis Chau
Updated: 3 de julho de 2026

Adicionar uma imagem Base64 a um cabeçalho ou rodapé em um PDF grande de múltiplas páginas pode aumentar drasticamente o tamanho do arquivo de saída. A solução é incorporar a imagem uma vez, em vez de em cada página, enquanto ainda permite que o texto por página, como {page}, seja renderizado normalmente.

O inchaço acontece por causa de como o renderizador manipula um fragmento combinado. Quando um único fragmento contém tanto a imagem quanto o conteúdo dinâmico, como {page}, o motor trata todo o HTML como dinâmico e reincorpora a imagem Base64 em todas as páginas. Dividir o trabalho em duas passagens mantém a imagem estática e a camada de número de página pequena.

Solução

1. Divida o cabeçalho ou rodapé em dois fragmentos

Separe o conteúdo em um fragmento estático e um dinâmico. Coloque a imagem e qualquer texto que nunca muda no fragmento estático. Coloque o conteúdo por página, como {page}, no fragmento dinâmico. Dê aos dois fragmentos o mesmo layout de tabela e larguras de célula para que o texto dinâmico se encaixe corretamente sobre a camada estática.

2. Adicione o fragmento estático primeiro

Chame AddHtmlHeadersAndFooters apenas com o fragmento estático. A imagem Base64 é renderizada e incorporada uma única vez.

3. Adicione o fragmento dinâmico em uma segunda passagem

Chame AddHtmlHeadersAndFooters novamente apenas com o fragmento dinâmico. Como esta passagem não carrega imagem, o conteúdo por página permanece pequeno.

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#

Os dois fragmentos table-layout:fixed compartilham larguras de célula idênticas, então o número da página na segunda passagem fica exatamente onde a célula vazia estava na primeira. A mesma técnica se aplica aos cabeçalhos: mantenha a imagem na passagem estática e coloque qualquer texto de cabeçalho dinâmico na segunda passagem.

Warning: Se os dois fragmentos não compartilharem a mesma estrutura de tabela e larguras de célula, o texto dinâmico, como o número da página, não vai se alinhar sobre a camada estática.

Opção: Referenciar uma imagem externa ou SVG

Se você não precisa da imagem embutida como Base64, apontar o <img> para um arquivo externo ou usar um SVG pode reduzir ainda mais o tamanho do arquivo de saída do que uma string Base64.

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Pronto para começar?

Nuget Downloads 20,389,208Versão:2026.7recém-lançado

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.

Experimente IronPDF gratuitamente

Configure tudo em 5 minutos

DLL de PDF em C#

Baixar DLL

Baixe agora

ou faça o download do Windows Installer aqui .

  1. Baixe e descompacte o IronPDF em um local como ~/Libs dentro do diretório da sua solução.
  2. No Solution Explorer do Visual Studio, clique com o botão direito do mouse em Referências. Selecione Procurar e digite "IronPDF.dll".
Biblioteca NuGet C# para PDF

Instalar com NuGet

                  Install-Package IronPdf
                
nuget.org/packages/IronPdf/
  1. No Solution Explorer, clique com o botão direito do mouse em Referências e selecione Gerenciar Pacotes NuGet.
  2. Selecione Procurar e pesquise "IronPDF".
  3. Selecione o pacote e instale.
Key in blue circle

Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.

bullet_checkedNão é necessário cartão de crédito nem criação de conta.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Agende sua demonstração ao vivo gratuita.
Booking Badge related to IronPDF Product Demo

Aprovado por milhões de engenheiros em todo o mundo.

Logotipos dos clientes da Iron Software
Agende sua consulta sem compromisso.
Preencha o formulário abaixo ou envie um e-mail para sales@ironsoftware.com
Os seus dados serão sempre mantidos em sigilo.
Aprovado por milhões de engenheiros em todo o mundo.
Logotipos dos clientes da Iron Software
Obtenha sua chave de avaliação gratuita de 30 dias instantaneamente.
Não é necessário cartão de crédito nem criação de conta.