Создание автоматической таблицы и печать
я стою на файле component.ts, и я генерирую таблицу tr и td th, как это показано в коде blow.
поэтому я хочу печатать данные с форматом, так что это стиль записи. этот код работает, но данные печати не формируются, данные отображаются как текстовый стиль, plz help
Что я уже пробовал:
import { Component } from '@angular/core'; import { PaginationInstance } from 'ngx-pagination' import { DatePipe } from '@angular/common'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent { title = 'app'; public columns = []; public rows = []; } constructor() { this.columns = [ { caption: 'First Name', fieldname: 'firstname', }, { caption: 'Last Name', fieldname: 'lastname', }, { caption : 'Age', fieldname:age, } ]; this.rows = [ { firstname: "john", lastname: "sunny", age:25 }, { firstname: "jack", lastname: "son", age:20 } ]; } print(): void { let printContents, popupWin; debugger; var div var table: HTMLTableElement = <HTMLTableElement>document.createElement("TABLE"); var row = table.insertRow(-1); table.setAttribute("border", "2px"); this.columns.forEach(element => { var headerCell = document.createElement("TH"); headerCell.innerHTML = element.caption; row.appendChild(headerCell); headerCell.className = "innertable"; }); var row = table.insertRow(-1); this.rows.forEach(element => { this.columns.forEach(col => { var Cell = document.createElement("TD"); Cell.innerHTML = element[col.fieldname]; row.appendChild(Cell); Cell.className = "innertable"; }); }); row.setAttribute("border", "2px"); debugger; printContents = table.innerHTML; // printContents = document.getElementById('printarea1').innerHTML; popupWin = window.open('', '_blank', 'top=0,left=0,height=100%,width=auto'); popupWin.document.open(); $(document).ready(function () { table.setAttribute("border", "2px"); popupWin.document.write(` <html> <body onload="window.print();window.close()">${printContents} </body> </html>` ); popupWin.document.close(); }); }