angular js使用pdfjs在线预览/打印/下载pdf

从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='访问路路径'

猜你喜欢

转载自blog.csdn.net/m0_38049333/article/details/82532302