使用RenderingOptions覆蓋CSS @page規則

Curtis Chau
Curtis Chau
Updated: 2026年6月10日

當HTML文件包含CSS @page 規則時,其值(頁面大小、方向和邊距)優先於在RenderingOptions上設置的相應屬性。 在渲染器上設置@page值時無效。

IronPDF通過Chrome引擎呈現,遵循標準的CSS層疊規則。 @page規則是一個文件級別的CSS聲明,瀏覽器在渲染時評估此聲明,覆蓋任何程式化的渲染提示。

解決方案

選項1:從HTML中移除@page規則

註釋掉或刪除@page塊:

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

在規則不存在的情況下,RenderingOptions屬性將完全生效。

選項2:程式化中和@page規則

如果您無法修改HTML模板,在渲染之前在程式碼中中和該規則:

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擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

閱讀更多

準備開始了嗎?

Nuget Downloads 21,739,885版本:2026.10剛剛發布