我有一个非常宽的报表 - 几十列,很多水平滚动的网页。当我尝试使用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