Window.print不打印整个页面

时间:2012-03-21 10:24:40

标签: javascript printing

我在jsp中创建了一个包含60列的报表。我可以通过滚动查看所有列。 现在我想打印这份报告。我用来打印的功能是

function printReport(rpt)
{       
    var report = document.getElementById(rpt);
    var newWindow = "toolbar=no, addressbar=no, directories=no,location=no, status=yes, menubar=no, scrollbars=yes, resizable=yes, width=5000 , height=500, left=50, top=50";
    var printWindow = window.open('',rpt, newWindow);
    printWindow.document.write('<html><body>');
    printWindow.document.write('<div id="rpt" name="rpt" style="overflow:scroll;" >');
    printWindow.document.write(report.innerHTML);       
    printWindow.document.write('</div>');
    printWindow.document.write('</body></html>');
    printWindow.document.close();
    printWindow.focus();
    printWindow.print();
    printWindow.close();    
}   

现在问题是它只打印在屏幕上可见的内容,即打印的纸张只有大约10列在屏幕上可见。但我想在下一页打印剩余的列,以便打印整个表。 有什么建议吗?

1 个答案:

答案 0 :(得分:1)

除去

风格= “溢出:滚动;”

或者甚至只是这个(并注意我首先删除了参数中的空格,然后删除了大部分空格,因为它们无关紧要)

function printReport(rpt)
{       
    var report = document.getElementById(rpt);
    var parms = "scrollbars,resizable,width=500,height=500,left=50,top=50";
    var printWindow = window.open('',rpt, parms);
    printWindow.document.write('<html><body onload="window.focus();window.print()">');
    printWindow.document.write(report.innerHTML);       
    printWindow.document.write('</body></html>');
    printWindow.document.close();
    printWindow.close(); // not sure this is ok either.   
}  

更新:我强烈建议你发送PDF而不是试图强制浏览器按照你想要的方式打印你的页面