1

我正在使用 C# 和 RazorEngine 从 HTML 模板生成 PDF。我试图让标题在每一页上重复。我已经尝试了多种方法来让它工作,但无论我尝试什么都不会重复。这是我尝试过的一个例子。

<table>
    <thead style="display: table-header-group;"><tr><th>Test THEAD</th></tr></thead>
    @for(var i=0; i<=100; i++)
    {
        <tr><td>Test TD </td></tr>
    }
</table>

从技术上讲,标题不需要是表格的一部分。模板本身不是一张大表,但如果我需要,我可以将它全部包装在一张表中,如果这是我需要做的让标题重复的话。任何想法都非常感谢。谢谢!

编辑

根据理查德摩根的建议,我尝试了这个,但没有奏效。

<table stlye="page-break-inside:auto;">
<thead style="display:table-header-group; display: table-header-group;">
    <tr stlye="page-break-inside:avoid; page-break-after:auto;">
        <th>Test THEAD</th>
    </tr>
</thead>
@for(var i=0; i<=100; i++)
{
    <tr style="page-break-inside:avoid; page-break-after:auto">
        <td>Test TD </td>
    </tr>
}
<tfoot style="display:table-footer-group;">
    <tr>
        <td>TFOOT</td>
    </tr>
</tfoot>
</table>
4

1 回答 1

0

我在使用 htmltopdf 时遇到了类似的问题,并且使用以下 CSS 获得了一个几乎可行的解决方案:

<style type="text/css">
    table { page-break-inside:auto }
    tr    { page-break-inside:avoid; page-break-after:auto }
    thead { display:table-header-group; display: table-header-group; }
    tfoot { display:table-footer-group }
</style>

您已经在使用,所以应该很容易尝试。

我认为这取决于 PDF 生成器用于呈现 HTML 的内容。我没有将 Razor 用于 PDF,因此您的体验可能会有所不同。

于 2013-06-03T15:40:55.343 回答