2010-08-08 62 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