Substituir Regras CSS @page com RenderingOptions

Curtis Chau
Curtis Chau
Updated: 10 de junho de 2026

Quando um documento HTML contém uma regra CSS @page, seus valores (tamanho da página, orientação e margens) têm precedência sobre as propriedades correspondentes definidas em RenderingOptions. Definir propriedades como MarginTop, PaperOrientation, PaperSize ou semelhantes no renderizador não tem efeito quando o HTML define valores @page conflitantes.

IronPDF renderiza via o mecanismo Chrome, que segue as regras padrão de cascata CSS. A regra @page é uma declaração CSS a nível de documento que o navegador avalia durante a renderização, substituindo quaisquer dicas de renderização programáticas.

Solução

Opção 1: Remover a regra @page do HTML

Comente ou exclua o bloco @page:

<style>
/*
@page {
    size: A3;
    margin-top: 2in;
    margin-bottom: 2in;
    margin-left: 2in;
    margin-right: 2in;
}
*/
</style>
HTML

Com a ausência da regra, as propriedades RenderingOptions têm efeito total.

Opção 2: Neutralize a regra @page programaticamente

Se você não puder modificar o modelo HTML, neutralize a regra no código antes da renderização:

string sanitizedHtml = html.Replace("@page", "/* @page */");

var renderer = new ChromePdfRenderer();
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4;
renderer.RenderingOptions.MarginTop = 10;
PdfDocument pdf = renderer.RenderHtmlAsPdf(sanitizedHtml);
pdf.SaveAs("output.pdf");

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,739,885Versão:2026.10recém-lançado