OFFICE 文档转换为html在线预览

摘要:
OFFICE文档有许多在线预览方案:服务器首先转换为PDF,然后转换为SWF,最后通过网页加载Flash预览。例如,flexpaperOffice文档直接转换为SWF,并通过网页加载Flash预览。Microsoft的Office365直接在浏览器中打开并转换为html。今天,我们需要使用的方案是转换为html进行预览。在实际使用中,您可以将生成的html放在网站路径下,并通过拦截器设置访问权限。

OFFICE 文档在线预览方案很多:

  • 服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览,比如flexpaper
  • Office文档直接转换为SWF,通过网页加载Flash预览
  • 微软的Office365
  • 在浏览器中直接打开
  • 转换为html

今天,我们要用的方案是转换为html来预览。

技术方案:

  • office文档转换为pdf:使用libreoffice
  • pdf转html,使用pdf2htmlex

测试环境:
操作系统:ubuntu 12.04

1. office文档转pdf

1.1 安装libreoffice

apt-get install libreoffice-common

1.2 启动转换服务

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

1.3 文档转换

网上一般介绍的都是使用JODConverter ,通过java来调用转换服务,其实还有一种替代方案,就是使用pyodconverter,python版本的转换脚本https://github.com/mirkonasato/pyodconverter/

下载后,进行测试:

python DocumentConverter.py Website_Information_Form.doc new.pdf

soffice 可以正常转换为pdf,但是中文显示为乱码

1.4 中文乱码问题修复

google一下,乱码问题大概是字体缺失的问题,于是尝试将windows下的字体拷贝过去,复制windows下的字体到/usr/share/fonts下,然后刷新字体缓存

sudo fc-cache -fv 2>&1 | grep failed | cut -f1 -d":" | xargs -i sudo touch {} && sudo fc-cache -fv

再重启转换服务,再次测试,已经OK了!

2.pdf转html

pdf转html,使用国人开源的pdf2htmlex,一开始尝试通过源码编译安装,依赖组件太多,安装非常麻烦!感兴趣的可以执行编译安装,参见(https://github.com/coolwanglu/pdf2htmlEX/wiki/Building)

下面介绍简单安装方式:

2.1 通过apt安装

sudo add-apt-repository ppa:coolwanglu/pdf2htmlex
sudo apt-get update
sudo apt-get install pdf2htmlex

2.2 测试pdf2htmlex

pdf2htmlEX --zoom 1.3 xiaoshujiang.pdf

可以看到,当前目录生成了xiaoshujiang.html

2.3 转换脚本

写一个脚本,将两次转换放到一起,方便调用:

#convert2html.sh
temp=$(date +%Y%m%d%H%m%s)
python DocumentConverter.py $1 ${temp}.pdf
pdf2htmlEX --zoom 1.3 $temp.pdf
mv $temp.html $2
rm $temp.pdf

3. 测试

3.1 word (doc.docx)测试

convert2html.sh imo云办公室-私有云用户使用手册V2.0.doc imo-doc.html

效果:

enter description here

3.2 表格 (xls)测试

convert2html.sh xxx.xlsx xxx.html

enter description here

3.3 PPT (pptx)测试

./convert.sh xxx.pptx xxx.html

enter description here

4. 总结

本文介绍了一种在服务端将office文档转换为html以方便预览的方法。

实际使用时,可以将生成好的html放到网站路径下,通过拦截器,设置访问权限。

免责声明:文章转载自《OFFICE 文档转换为html在线预览》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Idea 添加注释:类注释、方法注释(可获取参数)nginx 414 Request-URI Too Large下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

.net mvc使用FlexPaper插件实现在线预览PDF,EXCEL,WORD的方法

FlexPaper插件可以实现在浏览器中在线预览pdf,word,excel等。 在网上看到很多关于这个插件实现预览的技术,但是很难做到word和excel在线预览。 pdf很好实现。   首先下载相关的插件信息,这里不多说了。 其中这个插件主要需要配合Aspose来实现将上传的excel和word来转换为pdf。再通过pdf2swf来将pdf转换为swf...

[转载]Latex文件转成pdf后的字体嵌入问题的解决

原文地址:Latex文件转成pdf后的字体嵌入问题的解决作者:潘林的博客 Latex文件转成pdf后的字体嵌入问题的解决 Posted on03/05/2008byalephnk 一般情况下,字体都是能够嵌入的。但是如果论文里边用了matlab生成的eps图,则有问题了。一般matlab默认的字体是Helvetica,这个一般的window...

UNICODE与汉字编码互转

为了避免在浏览器中传输数据的时候出现中文乱码,我们可以将内容进行URL编码,当然也可以将内容进行UNICODE编码。将汉字进行UNICODE编码,如:“王”编码后就成了“\u738b”,UNICODE字符以\u开始,后面有4个数字或者字母,所有字符都是16进制的数字,每两位表示的256以内的一个数字。而一个汉字是由两个字符组成,于是就很容易理解了,“738...

【硬核】超强八位半开源万用表

该项目由欧洲核子研究组织(CERN)开发 由于一项实验需要大量的精密电压表,但市场的价格太贵,所以他们决定自制。 资料开源下载:https://ohwr.org/project/opt-adc-10k-32b-1cha/wikis/home 整理了部分原理图:EDA-04060-V2-0_sch.pdf (1.95MB)EDA-04061-V2-0_sch...

Oracle去除重复(某一列的值重复),取最新(日期字段最新)的一条数据

参考地址:https://blog.csdn.net/nux_123/article/details/45037719 解决思路:用Oracle的row_number() over函数来解决该问题。 解决过程: 1.查看表中的重复记录 SELECT * FROM find_new ; 2.标记重复的记录 select t.id, t.name,...

visio 导出无边距的pdf 图

原:http://blog.csdn.net/ycheng_sjtu/article/details/42840881 在文件选项卡上,单击选项,然后在导航窗格中,单击自定义功能区 主选项卡的窗格中,单击以选择开发人员选项,然后单击确定。 在开发人员选项卡上,单击显示 ShapeSheet,然后单击页面。 在ShapeSheet打印属性部分中,设置为0...