我创建了一个包含以下内容的html文件 的的index.html
<html>
<head>
<script type="text/javascript" src="./pdf.js"></script>
<script type="text/javascript" src="./hello.js"></script>
</head>
<body>
<canvas id="the-canvas" style="border:1px solid black;"/>
</body>
</html>
带有内容的hello.js
PDFJS.disableWorker = true;
var pf = PDFJS.getDocument('./helloworld.pdf')
pf.then(function(pdf) {
pdf.getPage(1).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
//
// Prepare canvas using PDF page dimensions
//
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
//
// Render PDF page into canvas context
//
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
});
但是当我将浏览器指向index.html时,pdf显示不正确。 我希望用户能够在他的计算机上选择一个pdf文件,并在浏览器窗口中显示该文件。
答案 0 :(得分:4)
使用file:
协议而非http:
或https:
时,您似乎遇到了此问题。不同协议之间存在不同的安全考虑因素。
此处a blog post about using XMLHttpRequest
with local files和discussion on a Mozilla Firefox ticket。
项目中有一些可能提供指针的门票(包括this one和this one)。来自this ticket的评论说:
典型的pdf.js用例需要使用Web服务器和现代HTML5浏览器。
我建议解决您的问题,您只需通过网络服务器运行即可使用http
协议。 Nginx和Apache易于安装和设置。
如果上述步骤无法正常工作,那么使用this为您的系统生成pdf.js和pdf.worker.js是不行的。