PDF.js使用sail .js中的显示api
PDF.js using display APIs in sails.js
我是MVC框架的新手。我需要实现一个网站的PDF文件预览功能。我不想用viewer。html的方式实现它,我需要使用显示api。我通过Hello world示例来学习如何使用api。但我无法弄清楚index。html, hello.js在sails.js中的位置。
- 我应该保持index.html作为一个。ejs文件在视图文件夹和嵌入hello.js内容在这个。ejs文件?
- 我应该写一个单独的javascript文件,或者可以"获取"api和渲染逻辑去控制器作为一个方法?
我试着先让helloworld示例工作。下载pdf.js和pdf.worker.js到我的assets/js/文件夹。将helloworld.pdf保存在views文件夹中,并将hello.js和index.html合并为一个文件index. js。使用路由,我链接到有index. js的视图。但是当我点击链接时,它会抛出如下错误:
> 21| PDFJS.disableWorker = true;
> 22| </script>
> >> 23| <%
> 24| 'use strict';
> 25|
> 26| var doc =PDFJS.getDocument('helloworld.pdf');
>
> PDFJS is not defined]
当我克隆git存储库并打开教程中给出的index.html时,它工作得很好,并显示了内容。
我可能在很多地方出错了。有人能帮我找个正确的方向吗?
我的ejs文件,其中嵌入了hello.js逻辑:
<!doctype html>
<html>
<head>
<script src="../../assets/js/pdf.js"></script>
<script>
PDFJS.disableWorker = true;
</script>
<%
'use strict';
var doc =PDFJS.getDocument('helloworld.pdf');
PDFJS.getDocument('helloworld.pdf').then(function(pdf) {
pdf.getPage(1).then(function(page) {
var scale = 1.5;
var viewport = page.getViewport(scale);
var canvas = document.getElementById('the-canvas');
var context = canvas.getContext('2d');
canvas.height = viewport.height;
canvas.width = viewport.width;
var renderContext = {
canvasContext: context,
viewport: viewport
};
page.render(renderContext);
});
});
%>
</head>
<body>
<canvas id="the-canvas" style="border:1px solid black;"/>
</body>
</html>
所以在漫长的一天和许多问题之后,我弄清楚了一些关于sails.js的事情。我遇到过"PDFJS"这样的错误。workerSrc not specified",或者有时只是一个没有内容的空白画布。
我做了以下操作使它工作:
- 将hello.js、PDF.js和PDF.worker.js保存在assets/js/文件夹中。
- 在layout.js中,将PDF.js, hello.js的标签移到"样式表和预处理器"下而不是"客户端javascript"
-
确保标签的顺序正确。hello.js应该出现在PDF.js脚本标签之后。4.在layout.js中,定义PDFJS。workerSrc如下:
PDFJS。workerSrc = "/js/pdf.worker.js"
在hello.js和pdf.js之间
- 保留你的索引。
- 从layout.js中删除pdf.worker.js的script标签。
相关文章:
- 使用图像数组列表的simplegallary.js显示适合桌面屏幕的图像
- 以angular.js显示数组
- 为什么“;未定义的“;以棱角分明的js显示
- 使用turn.js显示双页
- Angular js显示类似gmail的重叠电子邮件线程
- 使用wow.js显示两次动画对象
- 角度 JS - 显示/隐藏动态表的一些行
- 使用php或js显示数据
- 尝试使用Angular.js显示验证消息时出错
- Three.js-显示/隐藏对象的一部分
- Chart.js显示页面加载时的工具提示
- 让Angular.js显示json数据的html列表
- 使用chart.js显示图表
- 获取使用 JS 显示的日期
- 如何使用Node.js显示从http请求到外部API的图像
- 节点.js显示在本地主机上,但不在同一台机器上的http上显示
- 为什么我的画布不能使用 Fabric.js 显示任何内容
- 我无法使用 d3.js 显示 x 轴的年份和月份
- 键入提前.js显示所有结果,而不仅仅是匹配结果
- 如何在 ionic 中使用 JS 显示跨度