html - 使用自动分页符打印 html 时添加页码
问题描述
我想打印一个带有每页页码的 HTML 页面。我的 HTML 由一个包含不同大小行的表格组成。所以我不知道什么时候会发生分页。我只是使用了“page-break-inside:避免;” 在行中,因为我不想在行内中断。
我尝试使用 @page 属性,但它不起作用。
@page {
size: A4 portrait;
margin: 11mm 17mm 17mm 17mm;
counter-increment: page;
@bottom-left {
content: counter(page);
}
}
@page:first {
counter-reset: page 1;
}
我尝试在页脚或页眉之后使用,但也不起作用。标题似乎打印在每一页上,但只计算一次。所以我不能用它作为反增量。始终保持为第 1 页。页脚也是如此。
我的问题是在哪里放置反增量。我没有特定的元素来控制分页符。
HTML:
<table>
<thead>
<tr>
<td>
<div class="header-space">
<%-- header code --%>
</div>
</td>
</tr>
</thead>
<tbody>
<tr>
<td>
<div class="content">
<div class="content-block">
<p>
<asp:Repeater ID="rptTeste" runat="server" OnItemDataBound="rptTeste_ItemDataBound">
<ItemTemplate>
<div id="divQuestao">
<%-- rows of variate sizes code --%>
</div>
</ItemTemplate>
</asp:Repeater>
</p>
</div>
</div>
</td>
</tr>
</tbody>
<tfoot>
<tr>
<td>
<div class="footer-space">
<%-- footer code --%>
</div>
</td>
</tr>
</tfoot>
</table>
CSS:
@media print {
@page {
size: A4 portrait;
margin: 11mm 17mm 17mm 17mm;
}
body {
float: none;
margin-left: 0;
margin-top: 0;
counter-reset: page;
}
.header-space,
.footer-space {
height: 150px;
}
.footer-space::after {
top: 0px; position: relative;
white-space: nowrap;
z-index: 20; width:100%; margin:0 auto; text-align:center;
counter-increment: page;
content:"Page " counter(page);
}
#divQuestao {
page-break-inside: avoid;
padding-top: 30px;
text-align: justify;
}
}
打印时显示页码应该是那么容易!但不是!!
解决方案
推荐阅读
- python - Flask 测试、发布文件和嵌套字典
- json - 使用标头中的键从 React 中的 API 获取,返回 406 不可接受
- node.js - 使用 npm 安装 angular cli 时找不到模块“json-schema”
- python - HBASE:获取特定列族的所有列
- c - c中的括号检查器使用数组堆栈每次都不会产生正确的输出
- hyperledger-composer - 作曲家网络部署的命令错误
- php - 使用php在关联数组的数组中搜索值
- java - 如何使用 Tumblr API 获取用户的 Tumblr 仪表板?
- python - 如何检查套接字连接是否正常工作和缓冲或请求是否不正确?
- python-3.x - 如何在 Hacker Rank 中导入 NLTK 库