pdf.js框架的魅力所在,为其为HTML5实现的,无需任何本地支持,而且对浏览器的兼容性也是比较好,要求只有一个:浏览器支持HTML5就好了!(不过对于低版本的IE,就只能节哀了!)
据说IE9以上是OK的,因为我本地是IE11,所以我只在IE11上测试过,是通过的(当然火狐,360,我也测了一下,是可以的)。
因为项目开发需要,在线展示PDF,而且要兼容IE,所以就选择了pdf.js,但是网上对他的教程很少,我花了一天时间才搞定,回头看了一下,也没有想象中那么困难,所以决定写一篇博客,以便大家参考!
以下是pdf.js相关的网址:
GitHub: https://github.com/mozilla/pdf.js/
上面这个网址,有pdf.js的基本简介,以及如何获取源码,之后如何进行构建!
获取源码使用(首先要先装Git【点击->安装过程回顾】):
- $ git clone git://github.com/mozilla/pdf.js.git
构建使用:
- $ node make generic
其实,我们使用pdf.js,最终只需要构建后的内容,大家可以通过这里进行下载:
我整合好的js
【点击下载->build.rar】
下面我就介绍下,具体嵌入项目中是如何运用的!
可以把generic中的内容作为第三方插件进行使用,在项目中可以像如下存放:
我是放在plugins下的,把generic下的build和web、LICENSE都复制过来
项目架构:
http://localhost:8080/TestWeb/resources/plugins/pdfJs/web/viewer.htmll?file=【?】.pdf
【?】问号是输入pdf的所在的位置
页面代码如下:
- <%@ page language="java" contentType="text/html; charset=utf-8"
- pageEncoding="utf-8"%>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
- <title>在线显示PDF</title>
- </head>
- <body>
- <iframe id="displayPdfIframe" width="100%" height="800"
- src="<c:url value="/resources/plugins/pdfJs/web/viewer.html" />?file=<c:url value="/resources/pdf/1.pdf"/>">
- </iframe>
- </body>
- </html>
显示效果:
这就可以在线阅读pdf了,是不是很简单!
Ps:
我们在实际应用中,可能会根据不同的参数,来选择展示不同的pdf文件,此时就涉及到传参的问题了,仔细观察上面这段url地址会发现,在file请求参数中的值为一个url地址,而这个url地址又追加了自己的请求参数,这就导致一个url地址中出现2个"?"
导致浏览器不能正常解析这段url!
一种解决思路是:我们可以把file形参的值,先编码,然后再解码来解决这个问题!
此时,就可以请encodeURIComponent()函数出场了!因为其为js函数,所以需要在文档就绪函数中动态为iframe设置src的值,如下所示:
- <%@ page contentType="text/html;charset=utf-8" language="java" %>
- <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
- <script type="text/javascript">
- $(function(){
- $("#displayPdfIframe").attr("src",'<c:url value="/resources/plugins/pdfJs/web/viewer.html" />?file=' + encodeURIComponent('<c:url value="/showPDF.do?id=${id}"/>'));
- });
- </script>
- <div class="ctrlDiv">
- <div class="eleContainer elePaddingBtm">
- <iframe id="displayPdfIframe" width="100%" height="100%"></iframe>
- </div>
- </div>
当然,既然有编码,那么就一定要有解码来解析他,不过这个工作generic/web/viewer.js已经替我们做过了,如下所示:
至此,pdf.js插件的介绍就告一段落了,如有不懂,大家可以加我们的技术群,谢谢!
相关推荐
"Java Web使用pdf.js在线预览远程服务器上的pdf文件"这个主题涵盖了如何利用pdf.js库实现在Web环境中流畅、安全地预览PDF文档。pdf.js是Mozilla开发的一个开源项目,它允许开发者在浏览器端直接渲染PDF内容,无需...
Java集成PDF.js在线浏览PDF文件是一项常见的技术需求,特别是在开发Web应用时,用户可能需要在浏览器内查看PDF文档。PDF.js是由Mozilla维护的一个开源库,它允许开发者在浏览器环境中渲染高质量的PDF内容,无需依赖...
在这个"在线预览pdf(pdf.js)java示例"中,我们将探讨如何在Java后端与PDF.js前端库结合,实现PDF的在线预览功能,同时解决跨域访问的问题。 首先,我们需要理解PDF.js的工作原理。PDF.js将PDF文档解析为一系列的...
"pdf.js在java web项目中远程预览ftp上的pdf文件" 标题:pdf.js在java web项目中远程预览ftp上的pdf文件 描述:本文档详细介绍了使用pdf.js在Java web项目中远程预览FTP服务器上的PDF文件的方法。通过配置pdf.js...
而pdf.js是Mozilla开发的一个用于在浏览器中渲染PDF文件的JavaScript库,它能够使得用户无需下载即可在浏览器中查看PDF内容。在本文中,我们将深入探讨如何在SpringBoot项目中结合pdf.js实现PDF预览功能。 首先,...
PDF.JS是一个强大的开源JavaScript库,由Mozilla基金会维护,它允许在浏览器中直接查看PDF文档,无需依赖任何插件或第三方服务。这个功能对于提升用户体验非常有用,因为用户可以在前端直接预览PDF文件,无需跳转到...
2. **集成`pdf.js`**:将`pdf.js`库的JavaScript文件(如`pdf.js`和`pdf.worker.js`)添加到你的Android项目的`assets`目录下。这样,它们可以在Webview中加载。 3. **创建WebView**:在Android应用中创建一个`...
前端部分,我们可以利用JavaScript库如PDF.js来实现PDF的在线预览。PDF.js是由Mozilla开发的一个开源库,它能够在浏览器中渲染PDF文档,无需依赖Adobe Acrobat或其他插件。对于Word和Excel,可以选择使用Office Web ...
PDF.js 是一个由 Mozilla 开发的开源 JavaScript 库,专门用于在 Web 浏览器中渲染 PDF 文件。这个插件的出现解决了用户无需依赖 Adobe Acrobat 或其他本地 PDF 阅读器即可在线查看 PDF 文件的问题,它支持 PC 和...
总的来说,基于Java Web的在线Java编辑器为编程学习者提供了一个简洁、易用、跨平台的编程环境,它不仅降低了学习编程的门槛,而且促进了在线教育的发展,特别是在在线编程教育和在线考试系统中扮演着重要角色。...
7. **编程接口**:Aspose.Pdf.dll 提供了丰富的 API,支持 .NET Framework、.NET Core、Java、Python、Node.js 等多种开发环境,方便开发者在各自的项目中集成 PDF 功能。 8. **性能优化**:Aspose.Pdf 设计时考虑...
《Java Web整合开发进阶100例.pdf》这一文件,从其标题中我们可以推测该文档将涵盖在Java Web开发领域中,整合各种技术与框架的100个实例或案例。Java Web开发是Java语言用于网络应用程序开发的一个重要领域,主要...
- PDF.js适用于需要在线预览PDF的任何Web应用,如文档管理系统、在线教育平台、电子阅读器等。 通过这个demo,开发者可以学习到如何在实际项目中集成PDF.js,以及如何处理PDF文件流,从而在Web应用中提供无缝的PDF...
PDF.js是Mozilla开发的一个开源库,专门用于在Web浏览器中渲染PDF文档,无需依赖任何插件。这个项目的核心目标是提供一个跨平台、基于Web标准的解决方案,使得PDF文档能够被高质量地展示,同时保持良好的性能和兼容...
根据提供的文件信息,《学通Java Web的24堂课》是由陈丹丹和卢瀚编写的关于Java Web技术的教程书籍。尽管文档内容提供了书名、作者和格式信息,但并未给出实际的教学内容,而是重复包含了版权声明和免责声明。由于...
在Java开发中,Web打印和PDF打印是两个重要的技术领域,尤其在企业级应用中,它们经常被用来生成报告、发票、合同等文档。本文将深入探讨这些技术,并结合项目描述,提供一个详尽的解释。 首先,让我们从Java Web...