使用RenderingOptions覆蓋CSS @page規則
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");Imports IronPdf
Dim sanitizedHtml As String = html.Replace("@page", "/* @page */")
Dim renderer As New ChromePdfRenderer()
renderer.RenderingOptions.PaperSize = PdfPaperSize.A4
renderer.RenderingOptions.MarginTop = 10
Dim pdf As PdfDocument = renderer.RenderHtmlAsPdf(sanitizedHtml)
pdf.SaveAs("output.pdf")
技術作家
Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。
...
閱讀更多