gpt4 book ai didi

node.js - Node js,将pdfkit管道传输到内存流

转载 作者:IT老高 更新时间:2023-10-28 23:27:10 25 4
gpt4 key购买 nike

我正在使用 pdfkit在我的 Node 服务器上,通常创建 pdf 文件,然后将它们上传到 s3。

问题是 pdfkit 示例将 pdf 文档通过管道传输到 Node 写入流中,该流将文件写入磁盘,我按照示例进行操作并且工作正常,但是我现在的要求是将 pdf 文档传输到内存流而不是而不是将其保存在磁盘上(无论如何我正在上传到 s3)。

我遵循了一些 Node 内存流程序,但它们似乎都不适用于我的 pdf 管道,我可以将字符串写入内存流。

所以我的问题是:如何将 pdf 工具包输出通过管道传输到内存流(或类似的东西),然后将其作为对象读取以上传到 s3?

var fsStream = fs.createWriteStream(outputPath + fileName); 
doc.pipe(fsStream);

最佳答案

2020 年的更新答案。无需引入新的内存流,因为“PDFDocument 实例是可读的 Node 流”。

您可以使用 get-stream 包来轻松等待文档完成,然后再将结果返回给调用者。 https://www.npmjs.com/package/get-stream

const PDFDocument = require('pdfkit')
const getStream = require('get-stream')

const pdf = () => {
const doc = new PDFDocument()
doc.text('Hello, World!')
doc.end()
return await getStream.buffer(doc)
}


// Caller could do this:
const pdfBuffer = await pdf()
const pdfBase64string = pdfBuffer.toString('base64')

如果您的需求不同,您不必返回缓冲区。 get-stream 自述文件提供了其他示例。

关于node.js - Node js,将pdfkit管道传输到内存流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35658438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com