如何使用javascript将JSON转换为普通的PDF文本格式或表格格式?

时间:2019-09-06 13:21:32

标签: javascript json typescript pdf

我有作为HTTP响应传入的数据。我想以PDF格式获取此数据。我可以使用jsPDF模块以PDF格式获取数据,但它采用JSON格式。我想要普通文本格式或表格格式的数据。

我的列名是“日期”,“产品数量”,“尺寸”,“压缩尺寸”

与点击按钮相关的功能如下

downloadPDF() {
    const doc = new jsPDF();
    const col = ["Date","Number of Products","Size","Compressed Size"];
    const rows = [];

    for (const key in this.response){
       const temp = [key, this.response[key]];
       rows.push(temp);
    }

    doc.autoTable(col, rows);
    const filename = "test.pdf";
    doc.save(filename);

但是我猜想自动表无法正常工作,甚至在导入自动表时也给我一个错误。

2 个答案:

答案 0 :(得分:0)

也许const temp = [key, JSON.stringify(this.response[key])];

答案 1 :(得分:0)

这将生成我在本地系统上测试的pdf。我使用表格而不是自动表格,因为我在文档中找不到它。

    // you can directly use your response format is array of objects

    var data =
    [{  
        Date: "29th April",
        'Number of Products': "2",
        Size: "25",
        'Compressed Size': "22",
    }];

function createHeaders(keys) {
    var result = [];
    for (var i = 0; i < keys.length; i += 1) {
        result.push({
        'id' : keys[i],
            'name': keys[i],
            'prompt': keys[i],
            'width': 65,
            'align': 'center',
            'padding': 0
        });
    }
    return result;
}



var headers = createHeaders(["Date", "Number of Products", "Size", "Compressed Size"]);

var doc = new jsPDF({ putOnlyUsedFonts: true, orientation: 'landscape' });
doc.table(1, 1, data, headers, { autoSize: true });