有没有办法在 javascript 中使用 jspdf 和 autotable 导出所有 html table 分页数据

Is there way to export all html table pagination data using jspdf and autotable in javascript

我正在将 HTML table 数据导出为 PDF。我有很多数据要导出,因此我的 HTML table 有一个分页选项。导出时,我只得到出现在 JSP 页面上的数据。其他分页数据未以 PDF 格式获取。有什么方法可以获取所有 HTML table 分页数据吗?我必须在 HTML table 中使用分页选项,因为数据可能太大。

function exportTableToPDF(filename,report_title) {
    var doc = new jsPDF('p', 'pt','a4');
    var header = function(data) {
      if (data.pageCount > 1) {
        return false;
      }
      else
      {
        doc.setFontSize(11);
        //doc.setTextColor(200, 0, 255);
        doc.setFontStyle('bold');
        doc.text(report_title, data.settings.margin.left + 35, 60);
        doc.text('<%=DateLib.getDateTimeNow()%>', data.settings.margin.left + 35, 80);
      }
    };

    var totalPagesExp = '{total_pages_count_string}';
    var footer = function(data) {
      var str = 'Page ' + data.pageCount;
      // Total page number plugin only available in jspdf v1.0+
      if (typeof doc.putTotalPages === 'function') {
        str = str + ' of ' + totalPagesExp;
        console.log('test');
      }
      doc.text(str, data.settings.margin.left, doc.internal.pageSize.height - 30);
    };

    var options = {
      beforePageContent: header,
      afterPageContent: footer,
      pagesplit: true,
      margin: {
        top: 100
      }
    };

    var elem = document.getElementById('datatable-1');
    var data = doc.autoTableHtmlToJson(elem);
    doc.autoTable(data.columns, data.rows, options);

    // Total page number plugin only available in jspdf v1.0+
    if (typeof doc.putTotalPages === 'function') {
      doc.putTotalPages(totalPagesExp);
    }

    doc.save(filename);
  }

此提供的代码仅提取当时出现在 JSP 上的数据。例如,如果我的 HTML table 在第 4 页使用分页选项,这将仅提取第 4 页数据。

本地可能不存在所有数据。您可以创建一种方法来以 json 的形式获取 pdf 数据,或者以其他方式立即将其包含在页面上。