iText 7 pdfHtml 是否支持 CSS 网格布局?
Does iText 7 pdfHtml Support CSS Grid Layout?
关于 iText 7 是否支持 CSS 网格布局,我似乎找不到明确的答案。在我的 C# 代码中,我只是使用这一行:
HtmlConverter.ConvertToPdf(new FileInfo(@"testgrid.html"), new FileInfo(@"out.pdf"));
注意:我使用的是 iText 7 v7.1.12
假设我的 html/css 代码如下所示:
@page {
size: A4;
margin: 0;
}
.grid {
display: grid;
grid-template-rows: 1fr 1fr;
grid-template-columns: 1fr 1fr;
}
<div class="grid">
<div>
<h3>A</h3>
</div>
<div>
<h3>B</h3>
</div>
<div>
<h3>C</h3>
</div>
<div>
<h3>D</h3>
</div>
</div>
如果您 运行 上面的 html 片段,您可以看到网格布局按预期显示,但是当我 运行 C# 代码并打开我的 out.pdf
文件,网格样式被忽略,我在不同的行上看到 A、B、C 和 D。
我是不是遗漏了什么,或者 iText 7 HtmlConverter
根本不支持 CSS 中的 display: grid;
?
IronPDF 和 iText 7 HTML 到 PDF 转换器都不支持 display: grid;
或 display: flex;
.
如果您想使用 C# 将 HTML/CSS 转换为 PDF 但它包含 grid/flex,我认为您唯一可以做到的方法是使用 headless chrome:
var process = new System.Diagnostics.Process();
process.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
String command = "/C \"\"C:/Program Files/Google/Chrome/Application/chrome.exe\"\" --headless --disable-gpu --print-to-pdf=C:/users/xxxxx/Documents/file.pdf --print-to-pdf-no-header C:/users/xxxxx/Documents/file.html";
System.Diagnostics.Process.Start("cmd.exe", command);