如何在不操作DOM的情况下以角度操作/复制ElementRef?

问题描述 投票:0回答:1

我有一个近 200 行的格式化 html 表格,我必须将其导出为 PDF。目前我正在使用 jsPDF 库。

makePdf() {
    var elWidth = this.el.nativeElement.getBoundingClientRect().width
    var elHeight = this.el.nativeElement.getBoundingClientRect().height
    this.loadingSubject.next(true)
    this.zone.run(() => {
    let pdf = new jsPDF({
      orientation: 'l',
      unit: 'px',
      format: [elWidth, elHeight],
      compress:true
    });
    pdf.html(element.nativeElement, {
      callback: (pdf) => {
        pdf.save('sample.pdf');
      }
    })
    })
  }

现在保存为 pdf,默认情况下分隔高度,导致行切入下一页,如下图所示。 enter image description here

我想将行分成 13 行,并在每 13 行中附加 tablethead 标签,使它们在每个页面中分开表格。

el.nativeElement 的任何更改都会影响 DOM。有没有什么替代方案可以让我获取 html 并更改 html 而无需以角度操作 DOM??

javascript angular typescript dom elementref
1个回答
0
投票

你想用cloneNode克隆元素: https://developer.mozilla.org/en-US/docs/Web/API/Node/cloneNode

const clone = element.cloneNode(true)
获取副本并根据需要进行修改

© www.soinside.com 2019 - 2024. All rights reserved.