我有一个 HTML/CSS 可打印表单,它使用 PHP 从 MySQL 数据库生成内容。如果内容部分已满,我很难弄清楚如何让中间内容部分打印另一页。我需要保留 Logo 和订单总计部分,只跟踪中间内容部分。
有没有办法用 JavaScript 做到这一点?或者这个问题的最佳解决方案是什么?
附件是帮助查看问题的屏幕截图标记。
http://timkipptutorials.com/images/linked/page1.png http://timkipptutorials.com/images/linked/page2.png
最佳答案
如果您使用 div 标签,则在每个页面上打印页眉和页脚是一项非常困难的任务。在我的元素中,我几乎搜索了整个网络,发现要在每一页上打印页眉和页脚,你必须使用表格和 CSS 规则,如果不使用表格和 css,你就无法在每一页上打印页眉。我正在为您提供这样做的代码:
<style>
@media screen{thead{display:none;}}
@media print{thead{display:table-header-group; margin-bottom:2px;}}
@page{margin-top:1cm;margin-left:1cm;margin-right:1cm;margin-bottom:1.5cm;}}
</style>
第一个 CSS 规则使表格的 thead 不会显示在用户的屏幕上,第二个规则定义在打印期间 thead 显示为 table-header-group 因为如果您省略此规则,则该规则将在每个页面上显示标题页眉不会打印在每一页上,第三条规则是保持页边距不重叠页眉或页脚,您的 html 代码如下:
<table>
<thead>
<tr>
<th> <--- Your header text would be placed here ---> </th>
</tr>
</thead>
<tbody>
<tr>
<td>
<--- Your printing text would be place here --->
</td>
</tr>
</tbody>
</table>
最后,我已经在 IE、Safari、Firefox 和 Chrome 上尝试了代码,想告诉你在 Chrome 上标题只打印在第一页上。我也曾多次报告过该错误,但 Chrome 没有对此问题采取任何措施。
关于php - 如果达到 div 高度,则强制将内容放到新的打印页面上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18431875/