Sobrescribir reglas @page de CSS con RenderingOptions

Curtis Chau
Curtis Chau
Updated: 10 de junio de 2026

Cuando un documento HTML contiene una regla CSS @page, sus valores (tamaño de página, orientación y márgenes) tienen prioridad sobre las propiedades correspondientes establecidas en RenderingOptions. Establecer MarginTop, PaperOrientation, PaperSize u otras propiedades similares en el renderizador no tiene efecto cuando el HTML define valores @page conflictivos.

IronPDF renderiza a través del motor de Chrome, que sigue las reglas estándar de cascada CSS. La regla @page es una declaración CSS a nivel de documento que el navegador evalúa durante el renderizado, anulando cualquier sugerencia de renderizado programático.

Solución

Opción 1: Eliminar la regla @page del HTML

Comente o elimine el bloque @page:

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

Con la ausencia de la regla, las propiedades RenderingOptions tienen pleno efecto.

Opción 2: Neutralizar programáticamente la regla @page

Si no puedes modificar la plantilla HTML, neutraliza la regla en el código antes de renderizar:

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 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,739,885Versión:2026.10recién publicada