博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
shell下office、html、pdf文档互转方法
阅读量:6763 次
发布时间:2019-06-26

本文共 1602 字,大约阅读时间需要 5 分钟。

 分类:
后台开发
 

 

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版本的转换脚本

下载后,进行测试:

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,使用国人开源的,一开始尝试通过源码编译安装,依赖组件太多,安装非常麻烦!感兴趣的可以执行编译安装,参见()

下面介绍简单安装方式:

2.1 通过apt安装

sudo add-apt-repository ppa:coolwanglu/pdf2htmlexsudo apt-get updatesudo apt-get install pdf2htmlex
  • 1
  • 2
  • 3

2.2 测试pdf2htmlex

pdf2htmlEX --zoom 1.3 xiaoshujiang.pdf
  • 1

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

2.3 转换脚本

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

#convert2html.shtemp=$(date +%Y%m%d%H%m%s)python DocumentConverter.py $1 ${temp}.pdfpdf2htmlEX --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

效果:

enter description here

3.2 表格 (xls)测试

convert2html.sh xxx.xlsx xxx.html
  • 1

enter description here

3.3 PPT (pptx)测试

./convert.sh xxx.pptx xxx.html
  • 1

enter description here

4. 总结

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

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

 
 
你可能感兴趣的文章
Java学到什么程度才能叫精通?
查看>>
App上架/更新怕被拒? iOS过审“避雷秘籍”请查收
查看>>
如何写出优质干净的代码,这6个技巧你不能错过!
查看>>
Redis有序集合指令学习
查看>>
222. Count Complete Tree Nodes
查看>>
71. Simplify Path
查看>>
什么是SAP GUI的client
查看>>
深入call apply bind
查看>>
导航栏切换—云南旅游相册
查看>>
关于神经网络的需要注意的概念总结
查看>>
2018年总结
查看>>
containerd发布了CRI修复程序和CVE-2019-5736更新的runc
查看>>
关于vue父子组件之间事件触发及数据传递问题
查看>>
GraphQL:了解Spring Data JPA / SpringBoot
查看>>
每隔1s打印0-5
查看>>
在安卓手机中rem单位border-radius:50%画圆变形的解决方案
查看>>
前端在h5页面调起微信支付接口和支付宝接口(日常笔记)
查看>>
Bundler 2.0 发布
查看>>
自动化部署工具Syncd v1.1.0发布,提供二进制安装包
查看>>
一位老码农的分享:一线程序员该如何面对「中年危机」?
查看>>