如何在 jspdf-autoTable 中获取 lastAutoTable 的 finalE

How to get the finalY of lastAutoTable in jspdf-autoTable

我正在使用 angular 9.I 需要将 html table 的某些内容在 table 的上方和下方转换为 pdf。我正在使用 jspdf-autotable。我按照 link https://github.com/simonbengtsson/jsPDF-AutoTable/blob/master/examples/examples.js 中的示例进行操作,我能够编写标题然后生成 table.The 问题是当我需要添加一些内容时table.

下方的文本行

我的代码如下。

generatePdf(){
const doc = new jsPDF();
doc.setFontSize(18)
doc.text('ATTENDANCE REPORT FOR DEPOT - '+this.depotId, 14, 22);
autoTable(doc, { html: '#report-per-depot',startY: 30, });
doc.text(" ", 14, doc.lastAutoTable.finalY + 10)
doc.save('AttandancePerDepot.pdf');

}

我得到的错误是

Property 'lastAutoTable' does not exist on type 'jsPDF'.

我尝试将 lastAutoTable 导入为,从 'jspdf-autotable' 导入 lastAutoTable;
我没有显示任何错误,但我不确定如何从中获取 finalY。

  lastAutoTable(doc,{});

上面没有显示错误,但它的 return 类型是 void.So 这就是我卡住的地方。 如何获得 angular 9 或 10 的最终位置?

您收到此错误是因为 Typescript 是一种强类型语言,并且 lastAutoTable 未在 index.d.ts 文件(在 jsPdf 节点模块下)中定义。

下面是解决此错误并获取最终 Y 值的小技巧。

import jsPDF from 'jspdf';
import 'jspdf-autotable';
    
let finalY = (doc as any).lastAutoTable.finalY;

这在我的 Angular 10 项目中对我有用

在 angular 12(打字稿)

import jsPDF from 'jspdf'
import autoTable from 'jspdf-autotable'

然后在方法中

    crearPDF() {

    const doc =  new jsPDF();
    let finalY = 0;

    for (const key in this.entradasIndentificaciones) {
      if (Object.prototype.hasOwnProperty.call(this.entradasIndentificaciones, key)) {
        const element = this.entradasIndentificaciones[key];
        doc.text(element, 30, finalY + 10);
        autoTable(doc, { html: '#tableOn-' + key });
        finalY = (doc as any).lastAutoTable.finalY;

      }
    }
    console.debug("Guardando");
    doc.save("Report_.pdf");
  }

尊重