从pdfjs官方网站:http://mozilla.github.io/pdf.js/下载pdfjs-dist,直接引用里面的viewer.html就可在线预览pdf,下过如下图
但是,怎么可能就这么简单拿过来用呢?
pdfjs对angularjs没有支持,所以参数的传递就成了问题,调整viewer.html代码,加入jquery和参数(加入时间戳参数防止在IE浏览器缓存问题)
<script src="../build/jquery-1.11.1.min.js"></script>
<script>
$(function(){
//返回从问号 (?) 开始的 URL(查询部分)
var paraString = location.search;
//多个参数用&分隔,将参数字符串转为数组,使每个参数值存于一个数组元素中
var paras = paraString.split("*");
//每个数组元素中"="后面的值即参数值 加入时间戳,解决缓存
DEFAULT_URL = paras[0].substr(paras[0].indexOf("=") + 1)
+ "&t=" + (new Date()).valueOf();
if(typeof paras[1] != "undefined") {
toolbarIsShow = paras[1].substr(paras[1].indexOf("=") + 1);
if (toolbarIsShow) {
$('#toolbarContainer').hide();
}
}
});
</script>
DEFAULT_URL就是pdfjs要访问的pdf文件路径,后台接口与下载返回文件流
第二个参数则是判断pdfjs的工具栏是否显示,同样是使用jquery实现
在需要使用在线预览pdf的功能中加入
<iframe id="pdfView" name="pdfView" marginwidth=0 marginheight=0 width=100% height=500
ng-src="{{printViewSrc}}" frameborder=0></iframe>
printViewSrc=app/js/pdfjs/web/viewer.html?DEFAULT_URL='访问路路径'