如何使用 jsPDF 将数组导出为 PDF?

How to export an Array to PDF using jsPDF?

第一次使用jsPDF。

我正在尝试通过 PDF 导出一些数据,但是当我尝试导出数组时出现错误。我假设您使用 doc.table 导出数组,因为我找不到任何文档,在 Whosebug 中有一个用于问题的标签,但也没有找到有相同问题的人。

这是我目前所拥有的

const generatePDF = () => {
      var doc = new jsPDF('landscape', 'px', 'a4', 'false');
      doc.addImage(AIBLogo, 'PNG', 250,10,100,100)

      doc.setFont('Helvertica', "bold")
      doc.text(60,150, "Informacion del Pedido");
      
      doc.setFont('Helvertica', "Normal")
      doc.text(60,170, "Estado del Pago: "+estadoDePago)
      doc.text(60,190, "Estado de Disponibilidad: "+estadoDeDisponibilidad)
      doc.text(60,210, "Total del Pedido: "+total)
      doc.text(60,230, "Total Pagado: "+totalPagado)

      doc.setFont('Helvertica', "bold")
      doc.text(360,150, "Informacion del Estudiante");

      doc.setFont('Helvertica', "Normal")
      doc.text(360,170, "Nombre del Estudiante: "+nombre)
      doc.text(360,190, "Escuela: "+escuela)
      doc.text(360,210, "Estado del Pago: "+grado)
      doc.text(360,240, "Direccion de Entrega: Retirar en institución")

      doc.table(100,100, librosData)
      
      doc.save(id+".pdf")
    }

不包括 table 位,它打印如下:

我想在所有这些信息之后添加 DataTable 并在超出范围时创建新页面,因为 table 最多可以包含 20 个项目。

更新 我已经尝试了以下但没有用我从这里得到它:

var col = ["Descripcion", "Tipo", "Editorial","Precio"]
  row = []
  
  for (let i = 0; i < librosData.length; i++){
    var temp = [librosData[i].descripcion, librosData[i].tipo, librosData[i].editorial, librosData[i].precio];
    row.push(temp)
 }
  
 doc.autoTable(col,row, {startY:380});
 doc.save(id+".pdf")

我知道所有数据都是正确的这是打印行的方式:

非常感谢任何帮助或文档。

最终更新 解决 autotable is not a function 的问题

到底做出来的table我推荐这个:

要执行 table:

修复兼容性:

修复"deprecated autoTable initiation":

按以下方式初始化您的 autoTable

import autoTable from 'jspdf-autotable'

autoTable(doc, {
        head: [col],
        body: row
      })