【发布时间】:2016-03-17 12:55:37
【问题描述】:
我正在开发一个 Ionic 应用程序,目的是生成一个由用户信息表填充的 PDF。我通过使用 PDFmake.org 来做到这一点
我已经使用 ionic serve 测试了该应用程序,它在使用时生成了我想要的完美 PDF。
问题是,当我构建应用程序并在我的 android 设备上对其进行测试时,应用程序没有生成 PDF。我尝试了pdfMake.createPdf(docDefinition).open(); 和pdfMake.createPdf(docDefinition).download('optionalName.pdf');,但在我的设备上没有任何效果。关于我可以做些什么来解决这个问题或我做错了什么的任何想法?
PDF生成的完整代码如下:
$scope.people = [{
forename: "Adam",
surname: "Wilson",
email: "adam.wilson@gmail.com",
photo: " <base64 image code> "
}, {
forename: "Kyle",
surname: "Ryder",
email: "kyle.ryder@gmail.com",
photo: " <base64 image code> "
}, {
forename: "Blake",
surname: "Hunter",
email: "blake.hunter@gmail.com",
photo: "<base64 image code> "
}];
$scope.PDFBody = [];
$scope.generatePDF = function () {
$scope.PDFBody.push([ 'Picture', 'Forename', 'Surname', 'Email Address', 'Signature' ]);
for (i = 0; i < $scope.people.length; i++) {
$scope.PDFBody.push([ {image: 'data:image/jpeg;base64,' + $scope.people[i].photo, width: 75}, $scope.people[i].forename, $scope.people[i].surname, $scope.people[i].email, '' ]);
}
var docDefinition = {
pageSize: 'A4',
pageOrientation: 'portrait',
pageMargins: [ 40, 40, 40, 40 ],
content: [
{
table: {
headerRows: 1,
widths: [ 75, 75, 75, 140, 100 ],
body: $scope.PDFBody
}
}
]
}
/*for (i = 0; i < $scope.people.length; i++) {
docDefinition.content[0].table.body += ",[ {image: 'data:image/jpeg;base64," + $scope.people[i].photo + "', width: 200}, " + $scope.people[i].forename + ", " + $scope.people[i].surname + ", " + $scope.people[i].email + ", '' ]";
}*/
var number = 0;
console.log(docDefinition);
number = $localstorage.get('PDFnum');
if (!isNaN(number)) {
console.log("Pass");
number++;
} else {
number = 1;
}
$localstorage.set('PDFnum', number);
var docname = 'regDoc' + number + '.pdf';
pdfMake.createPdf(docDefinition).open();
//pdfMake.createPdf(docDefinition).download(docname);
}
【问题讨论】:
标签: android angularjs pdf ionic-framework pdf-generation