일반 JavaScript에서는 요소 ID를 가져 와서 새 창에 넣고 window.print()를 사용하여 요소를 인쇄 할 수 있습니다.각도 2 구성 요소 인쇄
그런 일을하는 "각도 2"방법은 무엇입니까? 지금까지 인쇄하고 싶은 컴포넌트의 ViewChild를 얻는 것으로 보았습니다.하지만 html에 액세스하고 이후에 인쇄하는 방법이나 그것이 내가해야 할 일이 무엇인지 확실하지 않습니다.
일반 JavaScript에서는 요소 ID를 가져 와서 새 창에 넣고 window.print()를 사용하여 요소를 인쇄 할 수 있습니다.각도 2 구성 요소 인쇄
그런 일을하는 "각도 2"방법은 무엇입니까? 지금까지 인쇄하고 싶은 컴포넌트의 ViewChild를 얻는 것으로 보았습니다.하지만 html에 액세스하고 이후에 인쇄하는 방법이나 그것이 내가해야 할 일이 무엇인지 확실하지 않습니다.
HTML
<div id="printSection"></div>
<button (click)="print()">PRINT</button>
TS
print(): void {
let printContents, popupWin;
printContents = document.getElementById('printSection').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();
}
의 사용 가능한 복제 [각도 2에서 인쇄 HTML 템플릿 (에서 NG-인쇄 각도 2)] (http://stackoverflow.com/questions/41379274/print-html-template-in-angular-2-ng-print-in-angular-2) – sloth
내가 찾은 가장 좋은 방법은 인쇄 구성 요소를 작성하여 라우팅에서 가장 높은 계층으로 경로를 지정하는 것입니다. window.open (url)을 사용하여 경로를 엽니 다. 그리고 그 컴포넌트에 대해 window.print()를 호출합니다. 생성 된 뷰를 인쇄 한 후에 인쇄 구성 요소에 구성 요소를 포함시킬 수 있습니다. 프린트 구성 요소에 css @media print {}를 추가하는 것을 잊지 마십시오. –