如何解决使用 PDFKIT 和 Strapi (Koa) 将 pdf 传输到 http 响应
我只想返回 pdf 以响应我的 Strapi 端点上的 GET 请求。 Strapi 使用 Koa,Strapi 控制器 atm 如下所示:
UPDATE Account Ex
Set[1f9ae786-9aae-4478-8254-3b683804ccfa] = 'New'
WHERE [1f9ae786-9aae-4478-8254-3b683804ccfa] COLLATE SQL_Latin1_General_CP1_CS_AS = 'NEW' AND 'new'
我认为问题在于 doc.end() 在构建文档之前关闭了流。
解决方法
我能够使用 pdfmake
和缓冲区使其工作。应该与 pdfkit
类似。
const PDFDocument = require('pdfmake');
module.exports = {
async printOne(ctx) {
const printer = new PDFDocument()
const docDefinition = {
content: [
'First paragraph','Another paragraph,this time a little bit longer.'
]
};
const pdfDoc = printer.createPdfKitDocument(docDefinition);
let buffers = [];
pdfDoc.on('data',buffers.push.bind(buffers));
pdfDoc.on('end',() => {
let pdfData = Buffer.concat(buffers);
ctx.set('Content-Type','application/pdf')
ctx.set('Content-disposition',`attachment;filename=docname.pdf`)
ctx.body = pdfData
});
pdfDoc.end();
}
};
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。