2017-04-25 60 views
0

在我的角度應用程序中,我有一個組件,在模板中,我有一個打印鏈接點擊我必須啓用打印功能。這樣的事情在我的HTML的Angular2-在打印鏈接點擊同一個窗口中啓用打印功能

<div> 
<a href="#" (click)="print()">PRINT</a> 
</div> 

和.TS文件 -

print(): void { 
    let printContents, popupWin; 
    printContents = document.getElementById('print-section').innerHTML; 
    popupWin = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto'); 
    popupWin.document.open(); 
    popupWin.document.write(` 
     <html> 
     <head> 
      <title>Print tab</title> 
      <style> 
      //........Customized style....... 
      </style> 
     </head> 
    <body onload="window.print();window.close()">${printContents}</body> 
     </html>` 
    ); 
    popupWin.document.close(); 
} 

這工作,但它會打開一個新的窗口打印。有沒有,我可以在同一個窗口中看到。 我也tried-

<a href="javascript:window.print();">Print</a> 

但上述兩種方法不起作用。任何想法如何讓我的頁面打印在angular2中。

+0

'href =「javascript:window.print();」'不能以什麼特定的方式工作? – 2017-04-25 06:57:24

+0

@torazaburo的風格完全扭曲。頁面看起來扭曲。 –

+0

您可能需要定義一些'@media print'樣式以使打印的頁面以您想要的方式出現。 – 2017-04-25 07:15:56

回答

0

這工作正常。我們將能夠打印特定的組件然而,我們需要在document.write函數中添加標籤內的樣式。

0

使用onclick來調用print()。

試試這個<a href="#" onclick="print();">Print</a>

+0

爲什麼這個工作比'href =「javascript:window.print()」'更好/不同? – 2017-04-25 07:29:23