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;

IronPDFiText 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);