Nadpisz zasady CSS @page za pomocą RenderingOptions

Curtis Chau
Curtis Chau
Updated: 10 czerwca 2026

Gdy dokument HTML zawiera regułę CSS @page, jej wartości (rozmiar strony, orientacja i marginesy) mają pierwszeństwo przed odpowiadającymi im właściwościami ustawionymi na RenderingOptions. Ustawienie właściwości MarginTop, PaperOrientation, PaperSize lub podobnych na rendererze nie ma efektu, gdy HTML definiuje konfliktowe wartości @page.

IronPDF renderuje za pomocą silnika Chrome, który stosuje standardowe zasady kaskadowe CSS. Reguła @page to deklaracja CSS na poziomie dokumentu, którą przeglądarka ocenia podczas renderowania, zastępując wszelkie programowe wskazówki dotyczące renderowania.

Rozwiązanie

Opcja 1: Usuń regułę @page z HTML-a

Zakomentuj lub usuń blok @page:

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

Bez obecności reguły, właściwości RenderingOptions mają pełny efekt.

Opcja 2: Programowo zneutralizuj regułę @page

Jeśli nie możesz zmodyfikować szablonu HTML, zneutralizuj regułę w kodzie przed renderowaniem:

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 posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 21,739,885Wersja:2026.10właśnie wydany