【发布时间】:2014-03-27 11:01:23
【问题描述】:
我创建了一个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 文件并在浏览器窗口中显示该 pdf。
【问题讨论】:
-
您可能在访问本地文件系统时遇到问题。你是如何服务/访问这个的?
http:?file:? -
另外我认为第 3 行的额外反引号是一个错字。
-
@Joe 我通过文件访问它:我不知道为什么我通过 http: 或文件访问它很重要:毕竟它是 JavaScript 并且应该以任何方式工作。
-
不要假设。在某些情况下(可能是这种情况,也可能不是这种情况),它确实很重要。看到这个:ejohn.org/blog/tightened-local-file-security
-
嗨,去年我尝试在画布上绘制图像时遇到了同样的问题:当我在 Google chrome 中从“文件:\\”加载页面(和图像)时,画布接受了它,但是不允许我从画布(使用 toDataURL)获取图像。我在本地安装了 Apache 并从中再次测试,它工作正常。
标签: javascript html pdf.js