微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用 PDFmake 生成大量数据时 PDF 损坏

如何解决使用 PDFmake 生成大量数据时 PDF 损坏

我正在使用以下代码生成 PDF。目前,我现在能够生成大约 38 页的 PDF。然而,pdf的内容通常超过38页,一旦超过,PDF就会损坏。

请提供解决方案的建议。

server.js 代码

function createPdfBinary(pdfDoc,callback) {

var 字体 = { 导游: { 正常:“快递”, 粗体:'Courier-Bold', 斜体:'Courier-Oblique', 粗体字:'Courier-Boldoblique' },黑体字:{ 正常:'Helvetica', 粗体:'Helvetica-Bold', 斜体:'Helvetica-Oblique', 粗体字:'Helvetica-Boldoblique' },次数:{ 正常:'时代-罗马', 粗体:'时代-粗体', 斜体:'时代-斜体', 粗体字:'Times-BoldItalic' },象征: { 正常:'符号' },ZapfDingbats:{ 正常:'ZapfDingbats' },机器人:{ 正常:path.join(__dirname,'/node_modules/roboto-fontface/fonts/roboto/Roboto-Regular.woff'),粗体:path.join(__dirname,'/node_modules/roboto-fontface/fonts/roboto/Roboto-Medium.woff'),斜体:path.join(__dirname,'/node_modules/roboto-fontface/fonts/roboto//Roboto-Italic.woff'),粗体: path.join(__dirname,'/node_modules/roboto-fontface/fonts/roboto/Roboto-MediumItalic.woff') } };

var printer = new pdfMakePrinter(fonts);

var doc = printer.createPdfKitDocument(pdfDoc);

var chunks = [];
var result;

doc.on('data',function (chunk) {
    chunks.push(chunk);
});
doc.on('end',function () {
    result = Buffer.concat(chunks);
    //callback('data:application/pdf;base64,' + result.toString('base64'));
    callback(result);
});
doc.end();

}

app.post('/pdf',function (req,res) {

dd = JSON.parse(req.body);
//console.log(dd)

var pdfutil  = new pdfUtil.PDFUtility("","");
var docDef = pdfutil.getDocumentDeFinition(dd);


createPdfBinary(docDef,function (binary) {
    res.contentType('application/pdf');
    res.send(binary);
},function (error) {
    res.send('ERROR:' + error);
});

});

var server = http.createServer(app);
var port = process.env.PORT || 1234;
server.listen(port);

console.log('http server listening on %d',port);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。