PDF.js的使用教程
来源:互联网 发布:网络经营保健食品 编辑:程序博客网 时间:2024/05/16 08:21
PDF.js是为html5实现的在线预览pdf框架,所以你的浏览器要支持html5才能使用这个框架。
PDF.js要构建后才能使用,以下网址有PDF.js的基本简介,如何获取源码和构建过程
GitHub: https://github.com/mozilla/pdf.js/
我们只需要使用构建后的PDF.js就行了,大家可以通过以下网址下载构建后的PDF.js:
http://pan.baidu.com/s/1skYRIwd
将下载后的generic文件拷贝到tomcat的webapps文件夹下:
然后启动tomcat,输入以下网址测试:
http://localhost:8080/generic/web/viewer.html
这时就会出现一个酷酷的界面:
generic/web/viewer.html主要是渲染阅读器的样式,而generic/web/viewer.js可以指定默认打开的文件(当然还有其他功能),打开viewer.js,找到下面一行代码:
这里指定默认的pdf,要想打开指定的pdf文件,可以在http://localhost:8080/generic/web/viewer.html后面加上file参数。例如打开下面的test.pdf:
就可以使用
http://localhost:8080/generic/web/viewer.html?file=test.pdf
来打开
以上使用file传参是比较简单的方式,只要知道了文件名跟类型就行了。但是这种方式用在项目中的话只能打开项目里的pdf文件,换句话说就是PDF.js默认是不能打开项目外文件系统的文件,这时就需要自己写控制器来下载pdf文件。
控制器示例(基于spring boot框架):
/** * 预览pdf文件 * @author Mike * @param request * @param response * @param fileName */ @RequestMapping(value = "/downloadPdf", method = RequestMethod.GET) public void pdfStreamHandeler(HttpServletRequest request, HttpServletResponse response,String fileName) { String filePath = "D:/upload/supervision/" + fileName;// System.out.println(fileName); File file = new File(filePath); byte[] data = null; try { FileInputStream input = new FileInputStream(file); data = new byte[input.available()]; input.read(data); response.getOutputStream().write(data); input.close(); } catch (Exception e) { System.out.print("pdf文件处理异常:" + e.getMessage()); } }
其中fileName要包括文件后缀名。下面是前台调用控制器的示例:
window.location.href = "/pdfjs/web/viewer.html?file=" + encodeURIComponent("/downloadPdf?fileName=" + number + "." + type);
以上就是PDF.js的使用实例。
参考链接:
http://www.cnblogs.com/kagome2014/p/kagome2014001.html
- PDF.js的使用教程
- pdf.js使用教程
- pdf.js使用教程
- pdf.js使用教程
- 【HTML/JS】Pdf.js使用教程
- pdf.js使用教程(支持IE9以上)
- PDF.JS的基本使用
- PDF.js插件的使用--在线浏览PDF文件
- 使用PDF.js如何显示pdf文件的电子签章
- 使用Rose教程(PDF)
- pdf.js pc端的使用
- pdf.js使用
- PDF.js使用笔记
- PDF.js使用心得
- 简单使用pdf插件pdf.js
- 使用pdf.js在线预览pdf
- Aspose.Pdf使用教程分享
- PHP 的pdf库mPDF6.0基本使用教程
- 最大公约数
- 十三、2017美团<大富翁游戏>
- Android Service学习笔记--创建Service
- 小(字体)图标的创建和应用
- 判断对象中的属性是否与同名变量相等
- PDF.js的使用教程
- 2017 Multi-University Training Contest
- BAT代币解读
- jQuery Mobile中翻转拨动开关slider的data-*选项
- Linux杀掉MySQL进程(关键词:Linux/MySQL/杀死进程/mysql/mysqld)
- Java网络编程精解之ServerSocket用法详解一
- 记一次困惑我两天的问题之myeclipse2014无法编译项目
- 浅谈单片机程序设计中的“分层思想”
- 深度学习框架的介绍与比较(Caffe, TensorFlow, MXNet, Torch, Theano)