CSS @page Kurallarını RenderingOptions ile Geçersiz Kılın
Bir HTML belgesi bir CSS @page kuralı içerdiğinde, değerleri (sayfa boyutu, yönlendirme ve kenar boşlukları) RenderingOptions üzerinde ayarlanmış karşılık gelen özelliklere öncelik tanır. HTML çelişen @page değerlerini tanımladığında, işleyicide MarginTop, PaperOrientation, PaperSize veya benzer özellikleri ayarlamak etkisizdir.
IronPDF, standart CSS kademeli kurallarını takip eden Chrome motoru ile işler. @page kuralı, tarayıcının render sırasında değerlendirdiği, programatik render ipuçlarının yerine geçen bir belge düzeyinde CSS bildirimidir.
Çözüm
Seçenek 1: HTML'den @page kuralını kaldırın
@page bloğunu yorum satırı yapın veya silin:
<style>
/*
@page {
size: A3;
margin-top: 2in;
margin-bottom: 2in;
margin-left: 2in;
margin-right: 2in;
}
*/
</style>
Kural yokken, RenderingOptions özellikleri tam etkisini gösterir.
Seçenek 2: @page kuralını programatik olarak etkisiz hale getirin
HTML şablonunu değiştiremiyorsanız, render işleminden önce kodda kuralı etkisiz hale getirin:
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, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.