2012-03-21 120 views
1

我创造我的JSP包含60列的报告表。我可以通过滚动查看所有列。 现在我想打印这份报告。我使用打印功能是Window.print不打印整个页面

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

删除

style =“overflow:scroll;”

甚至只是这种(请注意,我第一次删除的PARMS的空间,然后去除大部分,因为他们是不相关的)

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,而不是试图强制浏览器像你想

+0

感谢您的答复mplungjan打印页面。但我仍然得到相同的旧结果。注意:我必须打印的报表是可水平滚动的,不垂直。 – Shrikant 2012-03-21 11:33:46

+0

啊。你如何设想印刷品?我强烈建议你创建一个PDF,你希望它看起来和当用户想打印,你送他 – mplungjan 2012-03-21 14:01:32

+0

我会尝试这一个方法。 – Shrikant 2012-03-22 09:29:39