Der eigentliche Trick ist die Verwendung von position: fixed
damit sie auf jeder Seite angezeigt wird, und eine <tfoot>
Element, um Überschneidungen auf mehreren Seiten zu vermeiden. Der einzige Nachteil ist, dass Sie die Höhe der Fußzeile kennen müssen, aber dies kann dynamisch sein, wenn Sie JS verwenden. Etwas wie dies $('.footer').height($('.footer').children().first().height())
. Eine Kopfzeile kann auf die gleiche Weise hinzugefügt werden, indem eine <thead>
.
@page {
size: 8.5in 11in;
}
.page {
page-break-after: always;
}
.footer {
height: 75px;
}
.footer>div {
position: fixed;
bottom: 0;
}
body {
font-size: 42px;
font-family: sans-serif;
}
<button onclick="print()">print</button>
<table>
<tbody>
<tr>
<td>
<div class="page">PAGE 1</div>
<div class="page">
<div>PAGE 2 OVERFLOWING</div>
<div>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute
irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur
adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate
velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
</div>
<div class="page">PAGE THREE</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td class="footer">
<div>© 1999 Footer Example</div>
</td>
</tr>
</tfoot>
</table>