css pdf 页面 - header 与内容重叠

css pdf page - header overlapping with content

正如我们从图片中看到的,我的内容与 header 图片重叠,这是我的代码:

    <style type="text/css" media="print">
        @page {
            /*size:landscape;*/

            @top-center {
                content: element(header);
            }
            @bottom-left {
                content: element(footer);
            }
        }
        div.header {
            padding: 10px;
            position: running(header);
        }
        div.footer {
            display: block;
            padding: 5px;
            position: running(footer);
        }
        .pagenumber:before {
            content: counter(page);
        }
        .pagecount:before {
            content: counter(pages);
        }
    </style>
</head>
<div class="header">
    <img src="logo.png" title="logo" width="200px"/>
</div>
<div class="content">

</div>

P.S.: 请不要将此问题作为重复问题关闭,因为我已经搜索了所有与该问题相关的问题,但我的看起来不同,因为 PDF 是涉及。

页眉和页脚建立在页边距内。

所以解决办法就是增加页边距,例如:

@page {
        margin-top: 50mm; 
}

在 PDF 中正确实现页眉页脚的方法

在互联网上找到很多不同的解决方案和解决方法后,我终于分享了一种适合我的方法。

请将这些样式添加到报表容器(呈现报表的div)。

<div #scrollingContainer class="col-xxs-9 content-container" style="overflow-x: hidden;width:100%;">
</div>

// Div 属性可能不同

根据页眉和页脚的大小,将 Doc 组件用 thead 和 tfoot 包装到 table 结构中(table 包装在 div 中)。

<div style="width: 100%;">
    <table style="table-layout: fixed; width: 100%;"> // Add this css to make main table fixed, child tables will still scroll
        <thead class="page-break-before">
            <tr>
                <td>
                    <div style="height: 80px;"></div> // space for the respective header
                </td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td>
                    <div> Your Data Goes Here........</div>
                </td>
            </tr>
        </tbody>
        <tfoot class="show-in-print page-break-after">
            <tr>
                <td>
                    <div style="height: 130px;"></div> // space for the respective footer
                </td>
            </tr>
        </tfoot>
    </table>
</div>

示例页眉和页脚

<div class="page-break-before">
    <div>A long header content...</div>
</div>

<div class=" page-break-after">
    <p> A long footer content...</p>
</div>