NodeJS pdfjs-dist上的getDocument函数不工作

rdlzhqv9  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(306)

嗨,我正在使用nodeJS,express(EJS)和PostgreSQL制作的网站上工作,当我试图从view.ejs调用pdfjs的getDcoument函数时,我遇到了麻烦。这是密码。

<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>PDF Viewer</title>
</head>

<body>
  <canvas id="pdf-canvas"></canvas>
  <script defer>
    window.onload = function () {
      const pdfjsLib = window.pdfjsLib;
      const loadingTask = pdfjsLib.getDocument('../textos/Padre-Rico-Padre-Pobre.pdf');
      loadingTask.promise.then(function (pdf) {
        // Obtén la primera página del PDF
        return pdf.getPage(1);
      }).then(function (page) {
        // Obtén el objeto canvas
        var canvas = document.getElementById("pdf-canvas");

        // Obtiene las dimensiones de la página
        var viewport = page.getViewport({ scale: 1 });

        // Establece las dimensiones del canvas
        canvas.height = viewport.height;
        canvas.width = viewport.width;

        // Renderiza la página en el canvas
        page.render({
          canvasContext: canvas.getContext("2d"),
          viewport: viewport,
        });
      });
    };
  </script>
  </script>
</body>

</html>

在index.js中设置这样的视图

const pdfjs = require('pdfjs-dist');
app.use(function (req, res, next) {
  const pdfjsLib = pdfjs;
  res.locals.pdfjsLib = pdfjsLib;
  next();
});
app.get('/lectura', function (req, res) {
  res.render('pdf_viewer');
});

我遇到的问题是getDcoument由于某种原因不工作,我为函数返回的返回promise执行了一个加载任务,但它就是不工作。另外,我使用console.log检查了导入是否正常,并且视图似乎正确地接收了变量psdjsLib
如果有人知道getDocument不存在的错误原因,请告诉我。
非常感谢您一如既往的帮助和支持。

oalqel3c

oalqel3c1#

你能检查一下你在代码中设置window.pdfjsLib的位置吗?

const pdfjs = require('pdfjs-dist');
app.use(function (req, res, next) {
  const pdfjsLib = pdfjs;
  res.locals.pdfjsLib = pdfjsLib;
  next();
});
app.get('/lectura', function (req, res) {
  res.render('pdf_viewer');
});

我认为res.locals.pdfjsLib = pdfjsLib只在你的节点服务器上设置了一个变量,浏览器看不到它,它们在不同的进程中。

相关问题