`

【Java】web在线打开PDF(pdf.js教程)

 
阅读更多

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【点击->安装过程回顾】):

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. $ git clone git://github.com/mozilla/pdf.js.git  

构建使用:

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. $ 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的所在的位置

页面代码如下:

 

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <%@ page language="java" contentType="text/html; charset=utf-8"  
  2.     pageEncoding="utf-8"%>  
  3. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">  
  5. <html>  
  6. <head>  
  7. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">  
  8. <title>在线显示PDF</title>  
  9. </head>  
  10. <body>  
  11. <iframe id="displayPdfIframe" width="100%" height="800"  
  12.  src="<c:url value="/resources/plugins/pdfJs/web/viewer.html" />?file=<c:url value="/resources/pdf/1.pdf"/>">  
  13. </iframe>  
  14. </body>  
  15. </html>  

 

显示效果:

 

这就可以在线阅读pdf了,是不是很简单!大笑

 

Ps:

我们在实际应用中,可能会根据不同的参数,来选择展示不同的pdf文件,此时就涉及到传参的问题了,仔细观察上面这段url地址会发现,在file请求参数中的值为一个url地址,而这个url地址又追加了自己的请求参数,这就导致一个url地址中出现2个"?"

导致浏览器不能正常解析这段url!

一种解决思路是:我们可以把file形参的值,先编码,然后再解码来解决这个问题!

此时,就可以请encodeURIComponent()函数出场了!因为其为js函数,所以需要在文档就绪函数中动态为iframe设置src的值,如下所示:

[html] view plain copy
 
 在CODE上查看代码片派生到我的代码片
  1. <%@ page contentType="text/html;charset=utf-8" language="java" %>  
  2. <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>  
  3. <script type="text/javascript">  
  4.  $(function(){
  5. $("#displayPdfIframe").attr("src",'<c:url value="/resources/plugins/pdfJs/web/viewer.html" />?file=' + encodeURIComponent('<c:url value="/showPDF.do?id=${id}"/>')); 
  6.     });  
  7. </script>  
  8. <div class="ctrlDiv">  
  9.     <div class="eleContainer elePaddingBtm">  
  10.         <iframe id="displayPdfIframe" width="100%" height="100%"></iframe>  
  11.     </div>  
  12. </div>   


当然,既然有编码,那么就一定要有解码来解析他,不过这个工作generic/web/viewer.js已经替我们做过了,如下所示:

 

 

至此,pdf.js插件的介绍就告一段落了,如有不懂,大家可以加我们的技术群,谢谢!

分享到:
评论

相关推荐

    Java web使用pdf.js在线预览远程服务器上的pdf文件

    "Java Web使用pdf.js在线预览远程服务器上的pdf文件"这个主题涵盖了如何利用pdf.js库实现在Web环境中流畅、安全地预览PDF文档。pdf.js是Mozilla开发的一个开源项目,它允许开发者在浏览器端直接渲染PDF内容,无需...

    java集成pdf.js 在线阅览pdf文件

    Java集成PDF.js在线浏览PDF文件是一项常见的技术需求,特别是在开发Web应用时,用户可能需要在浏览器内查看PDF文档。PDF.js是由Mozilla维护的一个开源库,它允许开发者在浏览器环境中渲染高质量的PDF内容,无需依赖...

    在线预览pdf(pdf.js)java示例

    在这个"在线预览pdf(pdf.js)java示例"中,我们将探讨如何在Java后端与PDF.js前端库结合,实现PDF的在线预览功能,同时解决跨域访问的问题。 首先,我们需要理解PDF.js的工作原理。PDF.js将PDF文档解析为一系列的...

    pdf.js在java web项目中远程预览ftp上的pdf文件.docx

    "pdf.js在java web项目中远程预览ftp上的pdf文件" 标题:pdf.js在java web项目中远程预览ftp上的pdf文件 描述:本文档详细介绍了使用pdf.js在Java web项目中远程预览FTP服务器上的PDF文件的方法。通过配置pdf.js...

    SpringBoot采用pdf.js加载pdf文件

    而pdf.js是Mozilla开发的一个用于在浏览器中渲染PDF文件的JavaScript库,它能够使得用户无需下载即可在浏览器中查看PDF内容。在本文中,我们将深入探讨如何在SpringBoot项目中结合pdf.js实现PDF预览功能。 首先,...

    pdf.JS-前端无需跳转在线预览pdf功能

    PDF.JS是一个强大的开源JavaScript库,由Mozilla基金会维护,它允许在浏览器中直接查看PDF文档,无需依赖任何插件或第三方服务。这个功能对于提升用户体验非常有用,因为用户可以在前端直接预览PDF文件,无需跳转到...

    基于pdf.js在android内部显示pdf文件

    2. **集成`pdf.js`**:将`pdf.js`库的JavaScript文件(如`pdf.js`和`pdf.worker.js`)添加到你的Android项目的`assets`目录下。这样,它们可以在Webview中加载。 3. **创建WebView**:在Android应用中创建一个`...

    java web在线预览pdf、word、excel

    前端部分,我们可以利用JavaScript库如PDF.js来实现PDF的在线预览。PDF.js是由Mozilla开发的一个开源库,它能够在浏览器中渲染PDF文档,无需依赖Adobe Acrobat或其他插件。对于Word和Excel,可以选择使用Office Web ...

    pdf.js资源

    PDF.js 是一个由 Mozilla 开发的开源 JavaScript 库,专门用于在 Web 浏览器中渲染 PDF 文件。这个插件的出现解决了用户无需依赖 Adobe Acrobat 或其他本地 PDF 阅读器即可在线查看 PDF 文件的问题,它支持 PC 和...

    基于Java web的在线Java编辑器.pdf

    总的来说,基于Java Web的在线Java编辑器为编程学习者提供了一个简洁、易用、跨平台的编程环境,它不仅降低了学习编程的门槛,而且促进了在线教育的发展,特别是在在线编程教育和在线考试系统中扮演着重要角色。...

    PDF 在线预览类库:Aspose.Pdf.dll

    7. **编程接口**:Aspose.Pdf.dll 提供了丰富的 API,支持 .NET Framework、.NET Core、Java、Python、Node.js 等多种开发环境,方便开发者在各自的项目中集成 PDF 功能。 8. **性能优化**:Aspose.Pdf 设计时考虑...

    Java Web整合开发进阶100例.pdf

    《Java Web整合开发进阶100例.pdf》这一文件,从其标题中我们可以推测该文档将涵盖在Java Web开发领域中,整合各种技术与框架的100个实例或案例。Java Web开发是Java语言用于网络应用程序开发的一个重要领域,主要...

    pdf.js在Eclipse工程实现demo

    - PDF.js适用于需要在线预览PDF的任何Web应用,如文档管理系统、在线教育平台、电子阅读器等。 通过这个demo,开发者可以学习到如何在实际项目中集成PDF.js,以及如何处理PDF文件流,从而在Web应用中提供无缝的PDF...

    pdfjs对PDF文件进行预览的js文件项目

    PDF.js是Mozilla开发的一个开源库,专门用于在Web浏览器中渲染PDF文档,无需依赖任何插件。这个项目的核心目标是提供一个跨平台、基于Web标准的解决方案,使得PDF文档能够被高质量地展示,同时保持良好的性能和兼容...

    《学通Java Web的24堂课》.(陈丹丹,卢瀚).[PDF]&ckook;

    根据提供的文件信息,《学通Java Web的24堂课》是由陈丹丹和卢瀚编写的关于Java Web技术的教程书籍。尽管文档内容提供了书名、作者和格式信息,但并未给出实际的教学内容,而是重复包含了版权声明和免责声明。由于...

    Java web 打印,Java pdf打印,Java 打印

    在Java开发中,Web打印和PDF打印是两个重要的技术领域,尤其在企业级应用中,它们经常被用来生成报告、发票、合同等文档。本文将深入探讨这些技术,并结合项目描述,提供一个详尽的解释。 首先,让我们从Java Web...

Global site tag (gtag.js) - Google Analytics