我正在寻找一种在打印功能上添加参数的方法,因为我只需要打印表格,当我提醒表格时它会显示正确的值但是当我打印时会打印整个页面。< / p>
我的代码是
aa = document.getElementById('tablename').innerHTML
如果我alert(aa)
它给了我写入值
然后我print(aa)
它给了我整个页面。
所以我尝试了print(aa)
和aa.print
,但它不起作用。
有没有人知道这方面的解决方案?
答案 0 :(得分:12)
打印样式表很不错,但您仍然可以在Javascript中完成此操作。只需将您的值传递给以下函数...
function printIt(printThis) {
var win = window.open();
self.focus();
win.document.open();
win.document.write('<'+'html'+'><'+'body'+'>');
win.document.write(printThis);
win.document.write('<'+'/body'+'><'+'/html'+'>');
win.document.close();
win.print();
win.close();
}
答案 1 :(得分:6)
定义一个只显示表格的打印样式表。
没有必要让它变得动态。
只需将您不希望看到的那些部分定义为display:none(如alistapart文章中所述)
答案 2 :(得分:1)
答案 3 :(得分:0)
我们可以使用下面的PDF表格视图来实现您所要求的功能,在我的情况下,我给了表id =“ tableId”,然后将该页面数据替换为我们需要的表:
printTarget(tableId) {
let divToPrint = document.getElementById('tableId');
let htmlToPrint =
'<style type="text/css">' +
'table {'+'font-family: arial, sans-serif;'+
'border-collapse: collapse;'+'width: 95%;'+
'margin-left: 20px'+'}'+
'th, td {' +
'border:1px solid #000;' +
'padding: 8px;' +
'}'+ 'tr:nth-child(even) {'+
'background-color: #dddddd;'+'}'+
'</style>';
htmlToPrint += divToPrint.outerHTML;
let windowToPrint = window.open("");
windowToPrint.document.write(htmlToPrint);
windowToPrint.print();
windowToPrint.close();
}