如何使用javascript实现“在一页上适合工作表”打印

时间:2017-12-08 08:46:32

标签: javascript jquery css excel printing

我试图在一页内打印数据表。其中有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);
})

印刷内容应在一页上。有什么选择吗?

1 个答案:

答案 0 :(得分:1)

JavaSript代码无法控制打印过程,除了启动它。从那时起,它是特定于浏览器的,并且不受代码的控制。

我能看到的唯一方法就是询问用户他们使用的页面大小以及利润率(因为浏览器不会告诉你),然后确保你的表格,当渲染时,适合边距内的区域(例如,通过缩小/放大字体大小等)。毕竟,你可以通过jQuery的outerWidthouterHeight函数获得渲染大小(以像素为单位),一般来说你可以假设为96dpi(所以像素/ 96 =英寸)。