1 pdf amazon-s3 node.js pdfmake
如何将我在 pdfmake 中创建的 pdf 上传到 s3?
当我使用下面的代码将 pdf 上传到 S3 时,我创建了一个文件,但是当我打开该文件时,它是一个空白 pdf。我知道我的文档定义创建了一个正确的 pdf,因为我可以将其输出到控制台并在 pdfmake 站点上验证它。
pdfMake.createPdf(dd).getBuffer((buffer) => {
var s3 = new AWS.S3()
s3.putObject({
Bucket: s3UserFilesBucket,
Key: 'filename.pdf',
Body: buffer.toString('binary')
}, function (resp) {
})
})
Run Code Online (Sandbox Code Playgroud)
当我在记事本++中打开在s3中创建的文件时,它“看起来”像一个正确的pdf。即它开始于
%PDF-1.3
并且有很多特殊字符。
如果我将文档定义复制到 pdfmake Playground 并保存 pdf,然后再次在 notepad++ 中查看它,它看起来与我在 s3 中保存的类似,可读文本是相同的,但特殊字符块不同
使用缓冲区,然后将相同的缓冲区作为参数传递给 AWS s3.putObject 函数。以下代码将 pdf 文件(由 pdfmake 生成)的正确内容上传到 S3 存储桶。
const pdfMake = printer.createPdfKitDocument(dd);
let chunks = [];
pdfMake.on("data", chunk => {
chunks.push(chunk);
});
pdfMake.on("end", () => {
const result = Buffer.concat(chunks);
var s3 = new AWS.S3();
s3.putObject(
{
Bucket: s3UserFilesBucket,
Key: "filename.pdf",
Body: result
},
function(resp) {}
);
});
pdfMake.end();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5869 次 |
| 最近记录: |