PDF与图像与节点和meteor – 如何通过缓冲区作为input文件?

我需要编写一个应用程序,可以上传PDF,然后将第一页转换为图像。 我正在使用npm包https://www.npmjs.com/package/pdf-image 。

这是我的客户端代码:

'change #upload-materials'(event, template) { const file = template.$('[name=materials]')[0].files[0]; const reader = new FileReader(); reader.readAsArrayBuffer(file); reader.onload = () => { Meteor.call('convertPDFToImage', reader.result, (error, result) => { if (error) { throw new Error(error); } console.log(result); }); }; ... 

这是我的服务器端代码:

 convertPDFToImage(file) { const pdfFile = new PDFImage(file); console.log(pdfFile); ... 

以上不起作用。 根据文档,我需要传递一个path作为创buildpdfFile的第一个选项。 有人知道怎么做吗?

我不认为这是可能的pdf-image包没有创build一个临时文件。

通过简单地查看它们的源代码,可以发现, pdf-image实际上是使用convert来执行转换。 由于ImageMagic允许使用stdin而不是常规的input文件(参见这里 ),所以理论上可以使用pipe道在两个进程之间传递input/输出数据。 不幸的是, pdf-image没有提供这个选项,所以我想最好的方法是编写你自己的ImageMagic包装。