Outrepasser les règles CSS @page avec RenderingOptions

Curtis Chau
Curtis Chau
Updated: 10 juin 2026

Lorsqu'un document HTML contient une règle CSS @page, ses valeurs (taille de page, orientation et marges) priment sur les propriétés correspondantes définies sur RenderingOptions. Définir des propriétés comme MarginTop, PaperOrientation, PaperSize, ou similaires sur le moteur de rendu n'a aucun effet lorsque le HTML définit des valeurs @page conflictuelles.

IronPDF génère via le moteur Chrome, qui suit les règles de cascade CSS standard. La règle @page est une déclaration CSS au niveau du document que le navigateur évalue lors du rendu, remplaçant ainsi tout indice de rendu programmatique.

Solution

Option 1 : Supprimez la règle @page de l'HTML

Commentez ou supprimez le bloc @page :

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

En l'absence de la règle, les propriétés RenderingOptions prennent pleinement effet.

Option 2 : Neutraliser programmatiquement la règle @page

Si vous ne pouvez pas modifier le modèle HTML, neutralisez la règle dans le code avant le rendu :

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 détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes et créer des manuels bien structurés et visuellement attrayants.

Lire la suite

Prêt à commencer ?

Nuget Downloads 21,739,885Version :2026.10vient de sortir