2010-08-08 130 views
1

我目前正在使用PHP并获取完整的用户详细信息并将其显示到html表中。我有的问题是当我打印3张表格时,每张表格都完美地打印在每个页面上。但是,当我尝试打印3张以上的表格时,每张表格都向上移动,表格在每个页面上部分打印(每页中有1½个用户详细信息)。我给了桌子固定的高度,但仍然部分显示。在不同的页面打印Javascript?

有人可以请建议一个JavaScript,将在一个页面中打印一个单一的HTML表?

+0

你可以粘贴一些代码,所以我们可以很容易地理解你在说什么? – 2010-08-08 19:17:04

回答

2

做到这一点的最好方法是使用CSS。 CSS3有一个page-break-after: always属性,您可以将其应用于您的表格(另请参阅http://www.w3schools.com/CSS/pr_print_pageba.asp)。请注意,不同浏览器对它的支持尚不足,但IE8和其他版本的其他应该支持它。

0

你可以这样做的一种方法是创建一个新文档(可能在一个不可见的iframe中),将表格的内容转储到那里并在iframe上调用.print()

正如DA指出的那样,您可以操纵打印CSS;通过隐藏除想要打印的表格之外的所有内容,但这可能不适用于所有浏览器。

0

除了在某些情况下可以调用浏览器的打印对话框以外,JavaScript对打印没有任何影响。

打印CSS可能会有帮助,但即使是不完全支持或者在所有浏览器一致(咳嗽 IE 咳嗽

如果您想保留打印件的绝对控制权,这是一个我推荐使用PDF的少数例子。让您的网页上的PRINT链接回拨至服务器,重新提取数据,然后格式化为PDF并流回浏览器。

2

在浏览器中打印的问题是,你看到的并不总是你得到的。人们有不同的打印机设置和分辨率,完全适合一个用户纸张的内容可能完全不在另一个用户的纸张上。在HTML中没有万无一失的方法。

使打印文档100%完美的最佳方法是生成PDF。在PHP中创建PDF文档有许多工具 - Google搜索将帮助您找到需要的地方。

+0

+1提及PDF – quantumSoup 2010-08-08 19:25:11