我想使用 node.js 将 pdf 转换为图像服务器端。我对这个任务的输入是 pdf 的 url,所需的输出是一个 base64 字符串,代表一个图像。
我决定尝试 pdf.js ( https://github.com/mozilla/pdf.js ) 和 node-canvas ( https://github.com/Automattic/node-canvas ) - 我的计划是读取 pdf,将其渲染到 Canvas 并从 Canvas 中获取图像的 base64。
但是 pdf.js 在服务器端播放,我创建了一个获取文档任务,如示例中所述:
import pdfjs from 'pdfjs-dist';
const t = pdfjs.getDocument('http://cdn.mozilla.net/pdfjs/helloworld.pdf');
t.promise.then(function (doc) {
console.log('got doc');
console.log(doc);
})
.catch(err => {
console.log(err);
});
但什么都没有发生。 Promise 既不会解决,也不会拒绝。我怎样才能解决这个问题并让它发挥作用?我究竟做错了什么?
也许还有另一种解决方案,它可以让我在不将其存储到文件系统的情况下获得转换后的图像的 base 64(到目前为止,我见过的 Node 的所有 pdf 到图像转换器都将图像保存到驱动器,但这不是我想要的行为)?
最佳答案
试试这段代码:
https://github.com/mozilla/pdf.js/blob/master/examples/node/pdf2png/pdf2png.js
尝试使用 Async/Await
内部异步函数
const doc = await pdfjs.getDocument('http://cdn.mozilla.net/pdfjs/helloworld.pdf').promise;
const page = await doc.getPage(1);
关于javascript - 在 Node 服务器上使用 pdf.js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44520248/