我有一個非常寬的報表 - 幾十列,很多水平滾動的網頁。當我嘗試使用window.print()打印頁面時,瀏覽器(Firefox或Chrome)只打印一頁並將其餘部分截斷。用window.print()打印巨大的表只打印一個頁面
有沒有一種方法可以告訴瀏覽器打印整個網頁,即使它意味着將表格溢出到更多(紙張)頁面?
該表格目前不以任何方式顯示或打印樣式。
我有一個非常寬的報表 - 幾十列,很多水平滾動的網頁。當我嘗試使用window.print()打印頁面時,瀏覽器(Firefox或Chrome)只打印一頁並將其餘部分截斷。用window.print()打印巨大的表只打印一個頁面
有沒有一種方法可以告訴瀏覽器打印整個網頁,即使它意味着將表格溢出到更多(紙張)頁面?
該表格目前不以任何方式顯示或打印樣式。
您可以創建一個print.css來設置打印頁面的內容風格。它鏈接到你的頁面:
<link rel="stylesheet" type="text/css" media="print" href="print.css" />
目前沒有風格以任何方式顯示或打印的表格。
這是爲什麼?因爲沒有辦法強制(欺騙)瀏覽器打印水平滾動的內容,無論是通過JavaScript還是通過CSS來打印。
以某種其他方式破壞表格數據,或爲此使用樣式表。
這裏是一個article on writing CSS for print on A List Apart讓你開始,祝你好運。
Print a very wide HTML table without clipping right hand side 和 Print 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>
你可能要檢查http://stackoverflow.com/questions/1763639/how-to-deal-with-page-breaks-when-printing-a-large-html-table – JayC
...或者是表格不符合寬度的問題? Hrm ... – JayC
它只是不適合。我想知道是否有辦法強制表溢出到下一頁。 – abeger