【问题标题】:Converting JSON data with pdfMake使用 pdfMake 转换 JSON 数据
【发布时间】:2023-04-02 23:52:01
【问题描述】:

我有一个code snippet from bpampuch,可以将 JSON 数据转换为 pdf。它以前对我有用,但是当我链接我自己的本地 JSON 文件时它停止工作。我不能 100% 确定我需要做哪些修复才能转换我自己的 JSON 数据——我认为这与 data.jsonData.forEach 行有关(见下文),但我不确定还有什么。对此有什么想法吗?

JS sn-p:

import $ from 'jquery';
import jsonData from "./test.json";
import pdfMake from 'pdfmake/build/pdfmake.min.js';

function _buildTableBody(data, cols) {
        let body = [];  
        body.push(cols);

        data.jsonData.forEach(function(row) { // reg obj doesn't have forEach
            let dataRow = [];

            cols.forEach(function(column) {
                dataRow.push(row[column].toString());
            })

            body.push(dataRow);
        });

        return body;
    }

    function _table(data, cols) {
        return {
            table: {
                headerRows: 1,
                body: _buildTableBody(data, cols)
            }
        };
    }

    function _printFunc() {
        var docDefinition = {
            content: [
                { text: 'Dynamic Parts', style: 'header' },
                _table(jsonData.d.results[0].Title, ['Title'])
            ]
        };

        pdfMake.createPdf(docDefinition).download(name + '.pdf');
        console.log(docDefinition.content)
    }

    $("#pdf-trigger").on("click", _printFunc)

JSON sn-p:

{
  "d": {
    "results": [
      {
        "FileSystemObjectType": 0,
        "Id": 1,
        "Title": "TitleHere",
        "GoalRange": "3",
        "Office": "Somewhere",
        "Role": "FPSL",
        "IsFilled": false,
        "Employee": null,
        "IsActive": true,
        "Notes": null,
        "ID": 1,
        "Attachments": false
...etc

【问题讨论】:

    标签: javascript jquery json function pdfmake


    【解决方案1】:

    您的 json 文件显然与演示的格式不同。尝试从您遇到问题的行中删除 .jsonData:

    data.forEach(function(row) { // reg obj doesn't have forEach
    

    再往下,你有这条线

    _table(jsonData.d.results[0].Title, ['Title'])
    

    保留为数组

    _table(jsonData.d.results, ['Title'])
    

    【讨论】:

    • 哇,这比我想象的要简单得多。谢谢!
    • 没问题,愉快的 pdf-ing ;)
    猜你喜欢
    • 2019-07-27
    • 2019-11-25
    • 2016-06-22
    • 1970-01-01
    • 1970-01-01
    • 2016-02-07
    • 2017-12-01
    • 2017-01-13
    • 2022-01-11
    相关资源
    最近更新 更多