javascript - 使用 pdfMake 转换 JSON 数据

标签 javascript jquery json function pdfmake

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

JS 片段:

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 片段:

{
  "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

最佳答案

你的json文件显然和demo的格式不一样。尝试从您遇到问题的行中删除 .jsonData:

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

再往下,你有这条线

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

保留为数组

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

关于javascript - 使用 pdfMake 转换 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55537760/

相关文章:

javascript - 如何使用 Javascript 在 Chrome 中检测选项卡何时聚焦或不聚焦?

javascript - 无法获取/用户/测试nodejs

javascript - 将所有主体元素的颜色更改为目标值

javascript - 是否可以在 JS 或 jQuery 中更改 X 背景位置而不影响元素的 Y 背景位置?

json - 在 Angular 6 的组件中处理来自 observable 的数据

javascript - postgresql 事务助手的 `for await` 循环查询数组

javascript - 寻找正则表达式来满足以下条件

javascript - ajax 回发后将项目推送到数组中

c++ - 如何在现有的 json11 对象上附加属性值对(c++)?

javascript - 如何在 Javascript 的 for 循环中创建元素