在线查看PDF和office文档的设计与实现

楼主最近在弄一个在线预览附件的小功能点,在开发过程中走了不少弯路,现总结了一些方法,供广大同行使用,节约时间,少走弯路

话不多说,要实现这个小功能,目前主要是有如下3种比较可行的方式,先说实现的思路设计与他们的优缺点

第一种:先把附件office文档(DOC,PPT,EXCLE,TXT)转为PDF格式,这里需要用一个OpenOffice的东东来转换,或者libreoffice也是可以的,然后把PDF转为SWF方式,然后在前台页面使用Flexpaper插件进行播放即可实现。这种方式的好处在于可以兼容IE低版本的浏览器,当然连IE都可以的话,其他浏览器就肯定没问题,但是缺点也是很明显的,首先是把一个附件进行了2次的转换,这里的转换是指另外保存了.pdf和.swf这两种格式的文件,这无疑的加大了存储空间的使用,其次是.swf格式的文件需要放到项目的WEBROOT文件夹的下层才能被Flexpaper插件所读取,当然了你也可以使用Nginx做一个地址映射,把.swf文件放到别的地方也能被Flexpaper所读取,最后也是这种方式最大的缺点,对于Flexpaper插件主要是依赖于一个文件FlexPaperViewer.swf,而这个文件是无法编辑的,如果要编辑,则要找到Flexpaper的源码,然后修改源码,在重新构建生成FlexPaperViewer.swf,来着这里,大家肯定会问,为什么要编辑这个文件,那是因为这个文件是控制Flexpaper插件的各种按钮的,比如打印按钮的显示和隐藏,更重要的是Flexpaper插件是有它自带的LOGO水印,不去掉会显得很难看且尴尬,而编辑这个文件可以解决这些问题,另外如果你的功能中要对附件加自定义的水印的话,就不要采取这种方式了,因为是不可能实现的,原因很简单,因为PDF转SWF中这一步是很坑的,即使你的PDF中已经添加了水印,但是转换后得到的SWF是无水印的,不知道为什么会帮你自动去掉,所以前台读取的是.swf就自然就显示不出来水印了。

第二种:第一步还是和第一种一样的,都是先把附件为office文档转换为PDF格式,但是不同于第一种的是得到PDF之后呢,是使用pdf2htmlex插件把PDF直接转化为HTML文本输出到页面来,这样做的好处就是不用生成.swf文件,但是缺点呢就是只有达到预览的效果,如果你要实现打印,文本搜索等功能是是要自己另外写代码的,还有就是同样的,如果你的PDF中加了水印的话,输出的HTML也是没有水印的。

第三种:最靠谱的一种方式,第一步和前两种方法是一样的,都是先把附件Office文档转换了PDF格式,然后不同的是,得到PDF之后,使用PDF.JS这个框架来显示附件,但是这个框架是基于HTML5的新特性才能实现的,IE的话需要9以上版本才能兼容,这是最大的缺点了,优点太多了,即可看到水印,而且打印等这些功能点都已经实现好了,并且可以改变一些参数就可以实现这些按钮的权限的控制,良心之作。

-----------------------------------------------------分割线-------------------------------------------------------

写完思路之后当然要写具体要怎么写代码,先说第一种,这是JAVA代码

一个是测试类,是用来测试OFFICE文档转换换为PDF和SWF的,下面那个是工具类,是用来实现转换的代码,下面那个配置文件是是配置你的OpenOffic服务的端口和地址

然后是前台代码

主要是一些CSS和JS的控件和样式,前台的页面主要是这个FlexPaperViewer.html 把这个页面嵌进一个DIV就行,要显示的文档要转换为SWF格式放到WEBROOT下层,比如我的docs文件夹里的Paper.pdf.swf文件

效果如下

项目代码百度云地址:链接:https://pan.baidu.com/s/1o7LORxw 密码:8653 这个项目的打印功能和水印是被我去掉的,具体的怎么去掉自己去百度吧很多教程很麻烦这里就不演示

保留了打印功能的是这个地址:链接:https://pan.baidu.com/s/1pKK0VMF 密码:di0n 里面有个FlexPaperViewer.swf的文件把它替换了就行了

然后说第二种

有这些东西,是一个工具类转换的,把一个PDF变为HTML,然后直接显示HTML就可以实现预览效果了。

效果图如下

链接:https://pan.baidu.com/s/1eRQiVIy 密码:bdjw

第三种:

首先呢要在TOMCAT服务器搭建一个PDF.JS框架,说白了就是在webapp文件夹放入一个已经搭建好的小项目,如图

然后如何调用呢?在你的项目中DIV的SRC或者弹框中用

src=http://localhost:8080/generic/web/viewer.html?file=http://localhost:8080/resources/"+PDF文件名+"  resources是个文件夹这个是自己建的就可以了,?后边PDF文件的路径

效果如下

百度云:链接:https://pan.baidu.com/s/1eR7SdzW 密码:j9m1 这个是PDF.JS框架代码

最后附上PDF加水印的代码

链接:https://pan.baidu.com/s/1eR7Sd02 密码:ca1l

说明一下:

关于转换为PDF的时候首先在本机安装OPENOFFICE,然后就开启服务,在安装目录的program文件夹内 通过控制台输入以下命令:

soffice -headless -accept="socket,host=127.0.0.1,port=8100;urp;" -nofirststartwizard

大概就这么多了,有什么疑问可留言

原文地址:https://www.cnblogs.com/zhuoqingsen/p/7993565.html

时间: 2024-08-28 10:03:14

在线查看PDF和office文档的设计与实现的相关文章

sharepoint 2013 使用Office Web Apps 查看或编辑office文档时页面出现:“抱歉,出现了问题”错误

sharepoint 使用Office Web Apps 查看或编辑office文档时页面出现:"抱歉,出现了问题"错误 该问题是由于使用了系统账户登录站点而导致的. 更换其他账户登录问题解决. 其他错误还有下面的: 如果 Office Web Apps 在与 SharePoint 2013 结合使用时未正常工作,请查看以下症状并展开相应的标题以查找纠正步骤. 问题:当您选择 SharePoint 库中的"新文档"链接时,系统提示您上载某个文档而不是为您提供用于创建

solr从pdf、office文档中建立索引

使用solr从pdf.office文档中建立索引和从数据库中建立相似,只不过这里需要tika来解析这些文档.8.1 配置一个handler 这个handler首先要在solrConfig.xml中配置,如下所示:          <requestHandler name="/dataimport"    class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst    na

Java实现web在线预览office文档与pdf文档实例

https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档与pdf文档实例, 1.首先我们需要找到可以把office转换成pdf的方法,查找资料发现有openoffice这一软件可以把office转换成pdf,这一软件先下载下来,然后记住自己安装的在那个位置.然后在cmd环境下进入安装目录的program目 云计算 云服务器ECS 大数据 建站 备案 文档

java将office文档pdf文档转换成swf文件在线预览

java将office文档pdf文档转换成swf文件在线预览 第一步,安装openoffice.org   openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文本文档),impress(演示文稿),Calc(电子表格),Draw(绘图),Math(公式),base(数据库) 笔者下载的是openoffice.org 3.3.0.下载完直接安装即可.      但是,我们还需要启动openof

Java实现office文档与pdf文档的在线预览功能

最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完.查找资料发现我们要实现的过程就是把office转换成pdf,当然pdf就不用转换了.然后在pdf转换为swf文件,在浏览器实现预览swf文件.整个过程就是这样,看起来很简单,实际操作起来会出现各种问题.下面我就把自己写的这一小功能记录下来. 1.首先我们需要找到可以把office转换成pdf的方法

在线office文档编辑NTKO使用心得

目录 前言 什么是ntko 准备工作 实战演练 总结 一.前言 Web开发中经常需要用到在线处理office文档的功能,现在市面上有一些常用的Web页面调用显示Office的控件技术,用起来很方便.有一些第三方ActiveX浏览器控件:比如科瀚的SOAOffice中间件.卓正软件的pageoffice控件.WebOffice控件还有我这篇文章所要说到的NTKO. 二.什么是NTKO 通俗易懂来讲就是能够直接在浏览器上查看编辑word文档,并保存到web服务器上的控件. 借用官方的话,是能够在IE

office文档在线预览 (doc、docx、ppt、pptx、xls、xlsx)

要想实现office文档在线预览,可以使用红樱枫软件公司开发的数据格式转换软件HTML Filter,该产品可以以程序库的形式提供给用户,提供各种程序接口,如:C/C++.Java..Net等接口,供用户将软件镶嵌在自己的系统中.通过调用本产品的提供的API功能接口,实现MS Office系列文档到HTML的快速转换.本产品在国内外得到了广泛的应用,在国内有腾讯.搜狐等多家知名企业使用本产品.对多种文档进行统一管理,编辑,检索和浏览.用户可以使用本产品,十分便利的将office文档Word,Ex

Office文档格式如何与PDF格式互转

Office文档格式与PDF互转是很多朋友比较关心的问题,特别是将Word的DOC文档转成PDF文档,或者把PDF转换成Word文档用的最为广泛.或许大家并不知道,除了PDF与Word文档相互转换外,PDF文档还可以转成其它一些文件格式,大家一起来瞧瞧吧. PDF文档之间的转换: 迅捷PDF转换器是一个PDF转Word的工具,支持PDF转换成Word.Excel.图片.HTML等等,并且还带有PDF切割.PDF合并.PDF解密.PDF压缩.PDF图片获取等功能.不但转换速度非常快,转换出来的效果

office文档与pdf文件如何转为jpg图片

有些文档需要把内容输出成图片文件进行发送或是查看,也就是把像office文档以及pdf这类的文档转换成jpg图片的格式,我们都知道这些文档是不能直接保存输出成图片文件的,那要怎样操作才可以将这些文档快速的转为图片文件呢? 通过pdf转换成jpg软件可以将文档的内容输出成为图片的形式.打开转换软件后在左侧的第一个转换类别中选择“文件转图片”.一般转换的图片都是jpg格式. 添加文件既可以添加pdf格式的文件,也能添加office文档进行转换,并且对转换的文件没有要求和限制,文档可以是加密的或者扫描