嗨,我正在使用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不存在的错误原因,请告诉我。
非常感谢您一如既往的帮助和支持。
1条答案
按热度按时间oalqel3c1#
你能检查一下你在代码中设置
window.pdfjsLib
的位置吗?我认为
res.locals.pdfjsLib = pdfjsLib
只在你的节点服务器上设置了一个变量,浏览器看不到它,它们在不同的进程中。