IRONSOFTWAREHOME

Desalinhamento de Cabeçalho e Conteúdo

Curtis Chau
Curtis Chau
Updated: 29 de junho de 2026

Ao renderizar HTML para PDF, o cabeçalho e o rodapé podem ficar alinhados à borda da página enquanto o conteúdo do corpo é empurrado para dentro, mais visivelmente ao longo das margens esquerda e direita. Isso acontece mesmo com MarginLeft = 0 definido e UseMarginsOnHeaderAndFooter habilitado.

A causa é o estilo padrão do Chrome. Seu mecanismo de renderização aplica uma margem de 8 pixels ao elemento <body> de cada página. Esse padrão é bom para conteúdo da web normal, mas deixa uma lacuna visível de 8px entre seu conteúdo e a borda do PDF, independentemente do MarginLeft = 0 que você passar para ChromePdfRenderer.RenderingOptions. O cabeçalho e o rodapé não são afetados: com margens definidas para 0, eles se alinham diretamente à borda da página, conforme esperado, então apenas o corpo se desalinha.

Este trecho reproduz a discrepância:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<h1>This is header</h1>"
};
renderer.RenderingOptions.MarginLeft = 0;
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.Left;
var pdf = renderer.RenderHtmlAsPdf("<h1>Hello World</h1>");
C#

PDF exibindo cabeçalho alinhado à esquerda, mas conteúdo do corpo desalinhado para dentro

Solução

Substitua a margem padrão <body> do Chrome para que o conteúdo se alinhe com o cabeçalho e o rodapé em toda a largura da página. Aplique margens negativas para cancelar o deslocamento embutido de 8px:

body {
margin-left: -8px;
margin-right: -8px;
}
Text

Os valores negativos neutralizam o preenchimento padrão do Chrome para que o cabeçalho, corpo e rodapé se alinhem à mesma borda. Aplicado inline, a renderização corrigida se parece com isto:

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.HtmlHeader = new HtmlHeaderFooter()
{
    HtmlFragment = "<h1>This is header</h1>"
};
renderer.RenderingOptions.MarginLeft = 0;
renderer.RenderingOptions.UseMarginsOnHeaderAndFooter = UseMargins.Left;
var pdf = renderer.RenderHtmlAsPdf("<h1 style=\"margin-left: -8;\">Hello World</h1>");  //adjust margin left to -8 px to cancel out default Chrome margin
C#

PDF mostrando cabeçalho e conteúdo do corpo alinhados à mesma borda esquerda após a correção

Dicas de Depuração

  • Prefira uma lousa limpa: em vez de margens negativas, aplique um reset CSS ou defina margin: 0 explicitamente no elemento <body> para remover o deslocamento padrão na origem.
  • Escopo do comportamento: o intervalo de 8px aparece sempre que o HTML é renderizado por meio do Chrome sem cabeça, incluindo IronPDF, Puppeteer e o Chrome DevTools Protocol, portanto, a mesma correção se aplica a essas ferramentas.
Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais bem estruturados e visualmente atraentes.

...
Leia mais

Pronto para começar?

Nuget Downloads 21,105,021Versão:2026.9recé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.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.9

PM > 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.
DLL de PDF em C#
Baixar DLL

Versão: 2026.9

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".

Licenças a partir de US$ 749

Key in blue circle

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

Your trial license will be sent to your email address

Sem limitações. 100% desbloqueado. Sem cartão de crédito.

OR
bullet_checkedNão é necessário cartão de crédito nem criação de conta.Sem limitações. 100% desbloqueado. Sem cartão de crédito.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried Iron Suite
Agende sua demonstração ao vivo gratuita.
Booking Badge

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.
Biblioteca NuGet C# para PDF
Instalar com NuGet

Versão: 2026.9

PM > 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.
DLL de PDF em C#
Baixar DLL

Versão: 2026.9

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".

Licenças a partir de US$ 749