使用 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 (将#修改为@)