使用 pdfMake 转换 JSON 数据
Converting JSON data with 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 文件显然与演示的格式不同。尝试从您遇到问题的行中删除 .jsonData:
data.forEach(function(row) { // reg obj doesn't have forEach
再往下,你有这条线
_table(jsonData.d.results[0].Title, ['Title'])
保留为数组
_table(jsonData.d.results, ['Title'])
我有一个 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 文件显然与演示的格式不同。尝试从您遇到问题的行中删除 .jsonData:
data.forEach(function(row) { // reg obj doesn't have forEach
再往下,你有这条线
_table(jsonData.d.results[0].Title, ['Title'])
保留为数组
_table(jsonData.d.results, ['Title'])