如何使用javascript在“在一页上合适的页面”实现打印

我试图在一页内打印数据表。 其中有200或300行。 它应该打印在单个页面,如在线MS Excel打印选项 – > 在一个页面上的适合表 。 我怎么能做到这一点是可能的?

我已经尝试了下面的代码,

var tble = document.createElement("table"); tble.id = "tble"; document.body.appendChild(tble); var trtd = "<tr><td>123</td></tr>" for (var i = 0; i < 300; i++) { $("#tble").append(trtd); } var divs = "<div id='printing'></div>"; $("#printing").append($("#tble")); $("#printData").click(function() { var printToDiv = $("#printing"); var newWin = window.open("", "print-window"); newWin.document.open(); newWin.document.write('<html><body onload="window.print()">' + printToDiv.innerHTML + '</body></html>'); newWin.document.close(); setTimeout(function() { newWin.close(); }, 10); }) 

打印的内容应该在一个页面上。 有什么select吗?

除了启动JavaSript代码之外,JavaSript代码无法控制打印过程。 从这一点来看,这是针对浏览器的,并且不受您的代码的控制。

这样做的唯一方法就是向用户询问他们正在使用的页面大小以及页边距(因为浏览器不会告诉你),然后确保表格在渲染时适合区域内的区域(例如,通过减小/扩大字体大小等)。 毕竟,你可以通过jQuery的outerWidthouterHeight函数获得像素的渲染大小,一般你可以假设96dpi(像素/ 96 =英寸)。