如果达到div高度,则将内容强制到新打印页面

时间:2013-08-25 17:47:17

标签: php javascript html css printing

我有一个HTML / CSS可打印表单,可以使用PHP从MySQL数据库生成内容。如果内容部分已满,我很难弄清楚如何让中间内容部分打印另一个页面。我需要保留徽标并订购总计部分,并且只跟踪中间内容部分。

有没有办法用JavaScript做到这一点?或者这个问题的最佳解决方案是什么?

附上截图标记以帮助查看问题。

http://timkipptutorials.com/images/linked/page1.png http://timkipptutorials.com/images/linked/page2.png

1 个答案:

答案 0 :(得分:1)

如果使用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显示为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对这个问题没有做任何事情。