javascript - Angular 6 - jsPDF -autotable - PDF 未正确生成

标签 javascript angular typescript jspdf jspdf-autotable

我不知道哪里做错了(循环中)。目前,pdf 仅使用第一个对象的第一个属性生成。标题也不显示。尝试在 jsbpdf autoTable 中加载 json 响应。暂时请考虑以下模拟数据。

到目前为止,

测试.ts

prepareDoc(){

  const header = [['Devloper ID', 'Develoepr Name', 'Department', 'Location', 'Rate(Hr)', 'Current Status', 'Contact']];

    const data = [{
          'id': 'xxx-001',
          'dev_name': 'qqqqq',
          'department': 'ABC',
          'loc': 'loc-001',
          'hourly_rate': '00',
          'current_Status': 'Open',
          'contact': '--'
        }, {
          'id': 'xxx-002',
          'dev_name': 'eeeee',
          'department': 'DEF',
          'loc': 'loc-002',
          'hourly_rate': '00',
          'current_Status': 'Engaged',
          'contact': '--'
        }, {
          'id': 'xxx-003',
          'dev_name': 'rrrrr',
          'department': 'IJK',
          'loc': 'loc-003',
          'hourly_rate': '00',
          'current_Status': 'Qued(5)',
          'contact': '--'
        }, {
          'id': 'xxx-004',
          'dev_name': 'bbbbb',
          'department': 'LMN',
          'loc': 'loc-004',
          'hourly_rate': '00',
          'current_Status': 'Vacction',
          'contact': '--'
        }];

        data.forEach(elm => {
           const temp = [elm.id, elm.dev_name, elm.department, elm.loc, elm.hourly_rate, elm.current_Status, elm.contact];
           rows.push(temp);
           console.log('Rows', rows); // showing all data
         });

        downloadPDF.autoTable(header, rows);
        downloadPDF.save('demo.pdf');
}

html

<button (click)='prepareDoc()'></button>

问题

PFA:生成没有标题和其他数据的 pdf

pdf generating witout header and other data

请帮我解决这个问题

最佳答案

您应该使用这样的 autoTable 方法:

downloadPDF.autoTable({
              head: header,
              body: rows,
            });

这对我来说很有用。我用这个代码检查了它 https://codepen.io/anon/pen/WqvqVX :

const downloadPDF = new jsPDF();
function prepareDoc() {
  const header = [['Devloper ID', 'Develoepr Name', 'Department', 'Location', 'Rate(Hr)', 'Current Status', 'Contact']];
const rows=[];
    const data = [{
          'id': 'xxx-001',
          'dev_name': 'qqqqq',
          'department': 'ABC',
          'loc': 'loc-001',
          'hourly_rate': '00',
          'current_Status': 'Open',
          'contact': '--'
        }, {
          'id': 'xxx-002',
          'dev_name': 'eeeee',
          'department': 'DEF',
          'loc': 'loc-002',
          'hourly_rate': '00',
          'current_Status': 'Engaged',
          'contact': '--'
        }, {
          'id': 'xxx-003',
          'dev_name': 'rrrrr',
          'department': 'IJK',
          'loc': 'loc-003',
          'hourly_rate': '00',
          'current_Status': 'Qued(5)',
          'contact': '--'
        }, {
          'id': 'xxx-004',
          'dev_name': 'bbbbb',
          'department': 'LMN',
          'loc': 'loc-004',
          'hourly_rate': '00',
          'current_Status': 'Vacction',
          'contact': '--'
        }];

        data.forEach(elm => {
           const temp = [elm.id, elm.dev_name, elm.department, elm.loc, elm.hourly_rate, elm.current_Status, elm.contact];
           rows.push(temp);
           console.log('Rows', rows); // showing all data
         });

        downloadPDF.autoTable({
          head: header,
          body: rows,
        });
        downloadPDF.save('demo.pdf');
}

关于javascript - Angular 6 - jsPDF -autotable - PDF 未正确生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56578043/

相关文章:

javascript - Angular 不会自动显示我的字符串数组中的更改

javascript - 修改 Angular/core 包中现有的 Angular 函数

TypeScript 与 ES6 声明变量类型

JSON对象列表的Angular 6 ngbTypeahead过滤器

javascript - 如果变量包含

javascript - 安全问题: Parsing HTML with XMLHttpRequest?

javascript - 在 Hot Towel/Durandal 单页应用程序中加载 View (激活)时调用函数

angular - 找不到名称 'google' Angular 8

class - typescript :声明函数而不实现它们

javascript - 我是否偶然创建了一个全局状态?