javascript - 在 Node 服务器上使用 pdf.js

标签 javascript node.js pdf pdf.js

我想使用 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/

相关文章:

javascript - node.js - 从模块捕获调试输出

c# - 在不提示用户的情况下选择 AutoCAD 中的整个图形

android - 试图访问 Assets 文件夹中的子文件夹

javascript - Jquery函数返回顺序问题

javascript - 一个包中有多个 package.json 文件

javascript - 向用户脚本添加自动刷新

node.js - 我应该使用什么 HTTP 动词来请求一些新数据但不将它们保存在数据库中?

javascript - 使用作为 URL 参数传递的 jQuery 选择器 - 安全吗?

node.js - Node js cpu 100%

c# - 为什么我的图像在使用 iTextSharp 解码为 FlateDecode 时失真?