【问题标题】:Print in angularjs在 angularjs 中打印
【发布时间】:2017-04-01 13:12:24
【问题描述】:

我编写了以下代码来打印屏幕。它工作正常。它也在打开pdf文件。但在 pdf 文件后面打开了一个窗口。当我们按下 pdf 文件时,该窗口将打开。窗口后面那个pdf的问题是它变得可编辑了。如何移除后窗。

angular.element('#hideLeftLinks').addClass("no-print");
var printContents = angular.element('#Print').html();
var popupWin = window.open('', '_blank', 'width=1000,height=1000');
popupWin.document.open();
popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" href="css/Copyofstyles.css" /></head><body onload="window.print()">' + printContents + '</body></html>');
popupWin.document.close();
popupWin.innerHTML='';  
angular.element('#hideLeftLinks').removeClass("no-print");

【问题讨论】:

    标签: javascript angularjs pdf


    【解决方案1】:

    您应该检查this answer。我测试了自己,似乎答案是目前唯一有效的答案。我删除了onload="window.print()" 并添加了&lt;script&gt;window.print(); setTimeout(window.close, 0);&lt;/script&gt;,它起作用了。不需要popupWin.document.close();,也可能不需要popupWin.innerHTML='';。所以,替换下面三行

    popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" 
        href="css/Copyofstyles.css" /></head><body onload="window.print()">' + printContents + 
        '</body></html>');
    popupWin.document.close();
    popupWin.innerHTML=''; 
    

    popupWin.document.write('<html><head><link rel="stylesheet" type="text/css" 
        href="css/Copyofstyles.css" /></head><body>' + printContents + 
        '<script>window.print(); setTimeout(window.close, 0);</script></body></html>');
    

    【讨论】:

    • 在上面的代码中工作正常但窗口仍然打开,你能提供任何东西来关闭窗口。
    • 当然,它正在打开。如果它没有打开,则无法打印该页面。问题是“按下打印或取消按钮后窗口没有关闭”。
    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2018-04-05
    • 2017-05-08
    • 2016-10-08
    • 1970-01-01
    • 2018-07-24
    • 2020-03-24
    • 2015-09-28
    相关资源
    最近更新 更多