shell下office、html、pdf文档互转方法
版权声明:本文为博主原创文章,未经博主允许不得转载。
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
1.2 启动转换服务
soffice --accept="socket,host=127.0.0.1,port=2002;urp;" --nofirststartwizard
- 1
1.3 文档转换
网上一般介绍的都是使用JODConverter ,通过java来调用转换服务,其实还有一种替代方案,就是使用pyodconverter,python版本的转换脚本https://github.com/mirkonasato/pyodconverter/
下载后,进行测试:
python DocumentConverter.py Website_Information_Form.doc new.pdf
- 1
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
- 1
再重启转换服务,再次测试,已经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
- 1
- 2
- 3
2.2 测试pdf2htmlex
pdf2htmlEX --zoom 1.3 xiaoshujiang.pdf
- 1
可以看到,当前目录生成了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
- 1
- 2
- 3
- 4
- 5
- 6
3. 测试
3.1 word (doc.docx)测试
convert2html.sh imo云办公室-私有云用户使用手册V2.0.doc imo-doc.html
- 1
效果:

3.2 表格 (xls)测试
convert2html.sh xxx.xlsx xxx.html
- 1

3.3 PPT (pptx)测试
./convert.sh xxx.pptx xxx.html
- 1

4. 总结
本文介绍了一种在服务端将office文档转换为html以方便预览的方法。
实际使用时,可以将生成好的html放到网站路径下,通过拦截器,设置访问权限。
shell下office、html、pdf文档互转方法的更多相关文章
- pdf.js实现在HTML下直接浏览pdf文档,无需插件即可实现
近期,有一个朋友做B端,服务器存了大量的金融类数据,很多都是pdf文档,他现在的做法是,先将pdf文档转换成flash,再放到浏览器上给用户浏览,但是他告诉我,这种体验太差了,而且很好资源,空间已经快 ...
- java操作office和pdf文件java读取word,excel和pdf文档内容
在平常应用程序中,对office和pdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中.所以今天我们就简单来看一下Java对word.excel.pdf文件的读取.本篇博客只是讲解简单应 ...
- DocFX生成PDF文档
使用DocFX生成PDF文档,将在线文档转换为PDF离线文档. 关于DocFX的简单介绍使用DocFX生成文档 使用docfx 命令 1.下载 https://github.com/dotnet/do ...
- Java 插入附件到PDF文档
在文档中插入附件,可以起到与源文档配套使用的目的,以一种更简便的方式对文档起到补充说明的作用.下面将介绍通过Java编程插入附件到PDF文档中的方法.这里插入的文档可以是常见的文档类型,如Word.E ...
- Java 加密、解密PDF文档
本篇文章将介绍通过Java编程来设置PDF文档保护的方法.我们可以设置仅用于查阅文档的密码,即该通过该密码打开文档仅用于文档阅读,无法编辑:也可以设置文档编辑权限的密码,即通过该密码打开文档时,文档为 ...
- java将office文档pdf文档转换成swf文件在线预览
第一步,安装openoffice.org openoffice.org是一套sun的开源office办公套件,能在widows,linux,solaris等操作系统上执行. 主要模块有writer(文 ...
- Java实现web在线预览office文档与pdf文档实例
https://yq.aliyun.com/ziliao/1768?spm=5176.8246799.blogcont.24.1PxYoX 摘要: 本文讲的是Java实现web在线预览office文档 ...
- Java实现office文档与pdf文档的在线预览功能
最近项目有个需求要java实现office文档与pdf文档的在线预览功能,刚刚接到的时候就觉得有点难,以自己的水平难以在三四天做完.压力略大.后面查找百度资料.以及在同事与网友的帮助下,四天多把它做完 ...
- CentOS6.4下使用默认的PDF文档阅读器出现乱码的解决方案
方法一:修改/etc/fonts/conf.d/49-sansserif.conf文件,如下: 1: <?xml version="1.0"?> 2: <!DOC ...
随机推荐
- Hibernate与 MyBatis的比较(转)
第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.NET,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀 ...
- u盘安装原版win10系统1703更新
7月底,微软发布了win10的1703更新,听说值得一试,于是,安装ultraISO(下载地址http://pan.baidu.com/s/1dFu48d7 密码: 53cg),下载win10的ISO ...
- HTML 基本标签01
↑ !DOCTYPE 文档类型声明:让浏览器,按html5的标准对代码进行解释与执行 文档类型声明必不可少,而且,必须放在文档最上方 如果不写文档类型声明,浏览器会默认按照兼容模式运行,可能会出现不明 ...
- JAVA WEB主流开发工具下载集
JAVA SEhttp://www.oracle.com/technetwor ... ownloads/index.html eclipsehttp://www.eclipse.org/downlo ...
- 再起航,我的学习笔记之JavaScript设计模式08(建造者模式)
我的学习笔记是根据我的学习情况来定期更新的,预计2-3天更新一章,主要是给大家分享一下,我所学到的知识,如果有什么错误请在评论中指点出来,我一定虚心接受,那么废话不多说开始我们今天的学习分享吧! 前几 ...
- 关于mysql增删改查的基本操作
1.注释语法:--,#2.后缀是.sql的文件是数据库查询文件3.保存查询4.在数据库里面 列有个名字叫字段 行有个名字叫记录CRUD操作:create 创建(添加)read 读取update 修 ...
- Android开发获取多个存储空间的路径(内置SD卡以及外置SD卡)
Android开发中经常会遇到多存储空间的问题,包括内置存储路径以及外置SD卡,而且有的时候会有多张外置SD卡,此时就需要获取不同的SD卡路径,然后根据需要来写入或者读出文件. 此处给出常用的SD卡工 ...
- Flask-RESTful接口开发学习笔记一:实现简单的GET请求
1.首先安装需要依赖的第三方包: (1):Flask (2):Flask-RESTful 如何安装就不在啰嗦,pip也好,下载到本地再安装也好,看你随意. 2.我们先实现GET请求. Q:什么是GET ...
- ELK搭建指南(linux及Windows)
当前公司系统使用mongodb记录日志,最近想对日志做可视化分析,尝试了exceptionless,感觉扩展性不高,所以尝试搭建elk,过程如下: ELK核心由三部分组成: Elasticsearch ...
- JPA 中文乱码问题
背景 Spring Boot使用JPA,当前端传入到后端的数据为中文的时候,入库变为??? 解决方法 修改下项目的配置文件中DB的配置,新增characterEncoding=utf-8即可 spri ...