我正在尝试从 pdfmake 创建的 pdf 创建一个 blob,以便我可以将其发送到仅处理 blob 的远程 api。
这就是我获取 PDF 文件的方式:
var docDefinition = { content: 'This is an sample PDF printed with pdfMake' };
pdfDoc.pipe(fs.createWriteStream('./pdfs/test.pdf'));
pdfDoc.end();
Run Code Online (Sandbox Code Playgroud)
上面的代码行确实生成了可读的 pdf。
现在我怎样才能从那里得到一个斑点呢?我尝试了很多选项(使用 blob-stream 模块从流创建 blob、使用 fs 从文件创建、使用 b64toBlob 从 base64 字符串创建 blob),但所有这些选项在某些时候都需要使用构造函数 Blob即使我需要模块 blob,我总是会收到错误:
TypeError: Blob is not a constructor
Run Code Online (Sandbox Code Playgroud)
经过一番研究,我发现 Blob 构造函数似乎仅受客户端支持。
我发现的所有 npm 软件包似乎只能在客户端工作:blob-stream、blob、blob-util、b64toBlob 等。
那么,如何在 Node 上创建 blob 服务器端呢?
我不明白为什么几乎没有人还需要创建 blob 服务器端?我能找到的关于这个主题的唯一线索是这个。
根据该线程,显然:
这个问题的解决方案是创建一个可以在数组缓冲区和节点缓冲区之间进行转换的函数。:)
不幸的是,这对我没有多大帮助,因为我显然似乎缺乏一些重要的知识来理解这一点。