PDFTron : - 如何从 gridfs (mongodb) 获取 pdf 文件,在其中添加水印并将其发送给客户端?

PDFTron : - how to get pdf file from gridfs (mongodb), add watermark in it and send it to client?

我正在使用 Gridfs 将大文件存储在 mognodb 中。 现在我正在使用 PDFTron 进行 pdf 编辑并想要 watermark pdf。 问题是我无法从 pdftron nodejs sdk 中的 Gridfs 流读取文件。 我也想将它发送回客户端而不将其存储在本地或其他任何地方。

我正在做这样的事情...

const bucket = new mongodb.GridFSBucket(db);
const stream = bucket.openDownloadStream(ObjectId(file_id))
const pdfdoc = await PDFNet.PDFDoc.createFromFilter(stream);

我得到的错误是... TypeError:函数 'createFromFilter' 中的第一个输入参数的类型为 'object'。预期类型 'Filter'。函数签名:createFromFilter(PDFNet.Filter)

PDFDoc.createFromFilter API 需要 PDFNet 过滤器,而不是 GridFS 返回的任何内容。 https://www.pdftron.com/api/pdfnet-node/PDFNet.PDFDoc.html#.createFromFilter__anchor

您可以查看有关从过滤器创建 PDFDoc 对象的示例 https://www.pdftron.com/documentation/samples/node/js/PDFDocMemoryTest

尽管最简单的方法是将 GridFD 流写入缓冲区,然后将该缓冲区传递给 PDFDoc.createFromBuffer。 https://www.pdftron.com/api/pdfnet-node/PDFNet.PDFDoc.html#.createFromBuffer__anchor