2012-05-08 192 views
4

我有一個非常寬的報表 - 幾十列,很多水平滾動的網頁。當我嘗試使用window.print()打印頁面時,瀏覽器(Firefox或Chrome)只打印一頁並將其餘部分截斷。用window.print()打印巨大的表只打印一個頁面

有沒有一種方法可以告訴瀏覽器打印整個網頁,即使它意味着將表格溢出到更多(紙張)頁面?

該表格目前不以任何方式顯示或打印樣式。

+0

你可能要檢查http://stackoverflow.com/questions/1763639/how-to-deal-with-page-breaks-when-printing-a-large-html-table – JayC

+0

...或者是表格不符合寬度的問題? Hrm ... – JayC

+0

它只是不適合。我想知道是否有辦法強制表溢出到下一頁。 – abeger

回答

0

您可以創建一個print.css來設置打印頁面的內容風格。它鏈接到你的頁面:

<link rel="stylesheet" type="text/css" media="print" href="print.css" /> 
0

目前沒有風格以任何方式顯示或打印的表格。

這是爲什麼?因爲沒有辦法強制(欺騙)瀏覽器打印水平滾動的內容,無論是通過JavaScript還是通過CSS來打印。

以某種其他方式破壞表格數據,或爲此使用樣式表。

這裏是一個article on writing CSS for print on A List Apart讓你開始,祝你好運。

2

Print a very wide HTML table without clipping right hand sidePrint Stylesheets for pages with long horizontal tables 似乎表明你有點擰,如果你必須採取一個CSS唯一方法。我唯一能想到的威力工作(是的,我試過)是什麼有點瘋狂

<style media="print"> 
table, table * { 
display:inline-block; 
} 
table tr {display:block;} 
table td {padding:10px;} 
</style> 

其中,當然,試圖廢除正常的表格樣式。

http://jsfiddle.net/jfcox/WTRxm/,顯然對於打印版本http://jsfiddle.net/jfcox/WTRxm/show/

似乎在火狐和Chrome的工作(也就是,它周圍流動的細胞作爲內聯塊的每一行),我不知道這個標準怎麼說關於這一點,雖然。里程可能會有所不同。

編輯:作爲一種獎勵,似乎向計算單元添加計數器並不難,以便您知道單元格所在的列(僅在Chrome中進行了測試)。

<style media="print"> 
table, table * { 
display:inline-block; 
} 
table tr {display:block; 
    counter-reset: section; } 
table td {padding:10px;} 
table td:before { 
    counter-increment: section; 
    content: counters(section, ".") " "; 
}  

</style>