方案一采用的技术栈是:OpenOffice +SwfTools + FlexPaper, 这种方案是目前比较成熟的方案,很多网站采用该方案来实现在线预览的功能。这种方案的思路是这样的:

  1. 通过OpenOffice的服务将office文档及文本文档转换为pdf文档。
  2. 通过SwfTools将pdf文档转换为swf文档。
  3. 通过FlexPaper的js框架将swf文档展示到web页面。

流程图:

优缺点分析:

缺点:

  1. 服务器上面需要安装SwfTools来将pdf文件转换为swf文件。
  2. 客户端浏览器需要安装flash插件.

优点:FlexPaper的界面很像pdf阅读器,支持文字放大缩小及搜索等功能。

示例:

Demo:

https://github.com/StoneFeng/DocOnlinePreview1.git

方案二采用的技术栈是OpenOffice + pdf.js, office文档转换为pdf的工作依然由OpenOffice的服务来完成,pdf生成后我们不再将其转换为其他文件而是直接将pdf文件通过js框架直接展示到web页面,这样相对于方案一的实现少了一层转换,效率会更快,而且pdf.js由mozilla团队维护,不用担心后期维护问题,客户端浏览器不需要安装pdf阅读器插件,唯一的要求是浏览器必须支持html5。这种方案的实现过程是:

  1. 通过OpenOffice的服务将office文档及文本文档转换为pdf文档。
  2. 通过pdf.js将pdf文件展示到web页面。

流程图:

优缺点分析:

缺点:客户端浏览器必须支持html5

优点:pdf.js渲染出的页面很类似与pdf阅读器,支持文本搜索和字体缩放,支持分页等,用户体验较好。

图例:

Demo:

https://github.com/StoneFeng/DocOnlinePreview2.git

之前的方案无法很好地解决异构平台及不同浏览器的兼容性问题,如方案一需要客户端浏览器支持flash而移动端浏览器无法支持这点,虽然移动端浏览器支持方案二,但是一些老版本的IE浏览器无法支持,例如IE8就不支持html5,在这种情况下决定研究方案三,该方案采用的技术栈是OpenOffice + PDFRenderer + js, 思路是这样的:

  1. 通过OpenOffice的服务将office文档及文本文档转换为pdf文档。
  2. 通过PDFRenderer将pdf文件转换为图片。
  3. 利用js框架将图片展示到web页面。

流程图:

优缺点分析:

缺点:图片转换较慢,图片不支持文字搜索,PDFRenderer转换出来的文字感觉怪怪的。

优点:不用考虑浏览器的兼容性。

图例:

Demo:

https://github.com/StoneFeng/DocOnlinePreview3.git

三种文档在线预览实现方式相关推荐

  1. 文档在线预览(二)word、pdf、excel文件转html以实现文档在线预览

    文章目录 一.前言 1.aspose 2 .poi + pdfbox 3 spire 二.将文件转换成html字符串 1.将word文件转成html字符串 1.1 使用aspose 1.2 使用poi ...

  2. 文档在线预览:总体思路

    文档在线预览研究系列 总体思路 文档生成技术细节 利用百度阅读器 近两年出现了许多以"经验交易"为核心的文档平台,如豆丁网.百度文库.星期八等网站.这些网站将文档(知识)存放在网站 ...

  3. 如何实现文档在线预览

    从事软件开发已经有快5个年头了.在我经历过的每一家公司都避免不了有需要做文档在线预览的功能.那么客户为什么需要文档在线预览的功能呢?可能包括以下几点, 1.开发的系统支持文件可下载,那么客户肯定会再次 ...

  4. Android实现文档在线预览功能

    前段时间,项目中有个需求是实现文档预览的功能,Android要实现该功能要比IOS复杂的多,下面就我调研的情况,总结一下,供大家参考: 一.WebView 网页显示 该方式类似于ios的实现方式,使用 ...

  5. 文档在线预览(四)使用js前端实现word、excel、pdf、ppt 在线预览

    文章目录 实现方案 一.docx文件实现前端预览 1.docx-preview 2.Mammoth 二.PDF文件实现前端预览 1.pdf.js 2.pdfobject.js 3.vue-pdf 4. ...

  6. jacob jar包_java 文档在线预览 Windows版本(jacob)

    文档在线预览有两种实现方式: 1. windows server下用 jacob2. linux server下 用openoffice 1 2 话不多说,看吧.这里是使用jacob实现的 准备一下j ...

  7. 文档在线预览产品系列-解决方案篇

    文档在线预览产品系列-解决方案篇 hello 大家好,我又来了,上次我们聊到文档在线预览市场的产品类别有很多,今天我们就来盘点下各个类别以及对应的一些产品品牌. 产品类别 开源项目 开源项目是啥就不多 ...

  8. 开源好物分享!文档在线预览平台

    场景:每个企业都有对文档的查看需求,如何基于h5实现web的文档在线预览需求.如果单位预算很充足,可以购买商用服务,这不在此讨论范畴.如果预算比较有限,今天分享一款开源的,码云上有8kstar的开源好 ...

  9. 推荐一款文件文档在线预览解决方案

    真正的大师,永远都怀着一颗学徒的心! 今天给大家推荐一款文件文档在线预览解决方案.同学们,我们在开发的过程中,对于一些管理系统肯定有文档在线预览的需求.对于简单的文档,用谷歌的在线文档可以直接处理.但 ...

最新文章

  1. Silverlight 4常用StringFormat格式总结
  2. 对象拷贝的工具类DeepBeanUtils
  3. LintCode MySQL 1918. 第二高的球员的身高
  4. sql 2008 每次打开一个表都要登录_如何实现一个简易的orm
  5. 手写数字识别项目代码——卷积神经网络LeNet-5模型
  6. Java编写学生类student程序_编写一个JAVA程序片断定义一个表示学生的类student.docx...
  7. ansible之安装与简单使用
  8. 一张思维导图,让正则表达式不再难懂
  9. C语言编程题如何提交源程序,c语言课后习题源程序.doc
  10. 通过PaddleOCR识别pdf数据
  11. Payoneer(P卡)怎么免费申请Joom账号?
  12. firefoxos gaia 开发环境
  13. 《TCP/IP详解》中文版下载地址
  14. 台服天堂2更新服务器无响应,天堂2台服被限制怎么回事?该怎么解决?
  15. 2017年中国智能家居行业十大预测
  16. 安装httpd并修改apache服务器的首页,虚拟主机,配置不同端口号的虚拟主机访问Apache服务器
  17. 羊皮卷的故事-第五章
  18. 任鸟飞FPS类型游戏绘制和游戏安全,反外挂研究(一)
  19. 2019年6月网络统考计算机基础试卷,2019年9月网络教育统考《计算机应用基础》模拟题及答案六...
  20. 基于Vue和SpringBoot的宾馆管理系统的设计和实现

热门文章

  1. python-列表reverse函数的使用
  2. 如何用一句最经典的话来批评犯错的美丽女性?
  3. 5.8 综合案例2.0-智能刷卡门禁系统(仅支持2.2以上版本)
  4. PHP程序员面试宝典摘抄
  5. 图片底部圆弧(border-radius的各种形状)
  6. ITU正式把NB-IoT技术纳入5G标准体系
  7. 数据结构之链表Java
  8. js跨域访问获取json数组并解析
  9. 富文本编辑器添加图片
  10. WFH的完整形式是什么?