shell下office、html、pdf文档互转方法

简介:  分类: 后台开发 版权声明:本文为博主原创文章,未经博主允许不得转载。     OFFICE 文档在线预览方案很多: 服务器先转换为PDF,再转换为SWF,最后通过网页加载Flash预览,比如flexpaper Office文档直接转换为SWF,通过网页加载Flash预览 微软的Office365 在浏览器中直接打开 转换为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

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

效果:

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放到网站路径下,通过拦截器,设置访问权限。

 
 
目录
相关文章
|
11天前
|
移动开发 HTML5
HTML5文档基本格式
【8月更文挑战第28天】HTML5文档基本格式。
22 4
|
11天前
|
数据安全/隐私保护 Python Windows
三种方法,Python轻松提取PDF中全部图片
三种方法,Python轻松提取PDF中全部图片
|
11天前
|
移动开发 HTML5
HTML5文档头部相关标记
【8月更文挑战第28天】HTML5文档头部相关标记。
18 1
|
8天前
|
C# 开发者 Windows
WPF与PDF文档:解锁创建和编辑PDF文件的新技能——从环境配置到代码实践,手把手教你如何在WPF应用中高效处理PDF,提升文档管理效率
【8月更文挑战第31天】随着数字文档的普及,PDF因跨平台兼容性和高保真度成为重要格式。WPF虽不直接支持PDF处理,但借助第三方库(如iTextSharp)可在WPF应用中实现PDF的创建与编辑。本文通过具体案例和示例代码,详细介绍了如何在WPF中集成PDF库,并展示了从设计用户界面到实现PDF创建与编辑的完整流程。不仅包括创建新文档的基本步骤,还涉及在现有PDF中添加页眉页脚等高级功能。通过这些示例,WPF开发者可以更好地掌握PDF处理技术,提升应用程序的功能性和实用性。
22 0
|
15天前
|
1月前
|
开发框架 前端开发 JavaScript
在Winform分页控件中集成导出PDF文档的功能
在Winform分页控件中集成导出PDF文档的功能
|
18天前
揭秘HTML文档的结构和层次
揭秘HTML文档的结构和层次
|
2月前
|
JavaScript Java
Java 将Markdown文件转换为Word和PDF文档
【7月更文挑战第5天】Java中使用`Spire.Doc for Java`库可方便地将Markdown转换为Word或PDF。基本步骤包括导入模块,创建`Document`对象,加载Markdown文件,然后保存为目标格式(`.docx`或`.pdf`)。若遇到`Invalid UTF-8 stream`错误,需确保Markdown文件是UTF-8无BOM编码。页面设置可通过`PageSetup`类调整。注意,实际应用会依据具体需求和环境有所调整。
133 6
|
2月前
|
自然语言处理 开发者 Python
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 内容。Markdown 的语法简洁明了、学习容易,而且功能比纯文本更强。
|
2月前
|
JavaScript 数据库
文本,在线浏览PDF,一个最简单的文档标准样式,文档预览非常简单的样式,文档管理样式设计,标准,好的设计
文本,在线浏览PDF,一个最简单的文档标准样式,文档预览非常简单的样式,文档管理样式设计,标准,好的设计
下一篇
DDNS