CentOS下使用LibreOffice实现文档格式的转换方式

(编辑:jimmy 日期: 2024/9/24 浏览:2)

项目需求,对上传的文档进行一些预处理,如果用户上传了doc格式的文档,需要将其处理为docx或者pdf格式,以便后续的流程对文档内容进行提取。

先是试了一下phpoffice/phpword这个包,发现其对doc的转换很不理想,这个包更适合用来根据内容生成文档,而不是转换文档,不是太适合我这种需求。

然后发现了LibreOffice这个开源工具,经过使用,效果很好,分享一下。

服务器是CentOS7,直接使用yum安装LibreOffice,大概需要600MB+ 的磁盘空间:

# 装之前可以先删除一下,防止之前装过
yum remove libreoffice-*
yum install libreoffice

等待安装完成后,确认一下版本啥的,虽然官方已经到6.1版本了,yum里面还是5.3.6的包,不过用起来并没有什么毛病,在这里我还是建议大家使用各自的Linux系统的包管理工具来安装,这样可以省去很多麻烦的。

[root@localhost /]# soffice --version
LibreOffice 5.3.6.1 30(Build:1)

不会用的话可以使用soffice --help看一下帮助,非常多的参数和使用案例,转换格式就很简单:

soffice --headless --convert-to docx /opt/upload/source/123.doc --outdir /opt/upload/source

以上的命令就是将/opt/upload/source/123.doc文件转换成docx格式,输出到/opt/upload/source文件夹里。

默认情况下:

  1. 会使用源文件名+新的扩展名保存输出文件;
  2. 会覆盖outdir里已经有的同名文件;

转换成功会输出类似这样的:

convert /opt/upload/source/123.doc -> /opt/upload/source/123.docx using filter : MS Word 2007 XML
Overwriting: /opt/upload/source/123.docx

LibreOffice会根据文件格式自动匹配格式过滤器(filter),至于它支持哪些格式,可以参考一下官网。

总结

以上所述是小编给大家介绍的CentOS下使用LibreOffice实现文档格式的转换方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

一句话新闻

一文看懂荣耀MagicBook Pro 16
荣耀猎人回归!七大亮点看懂不只是轻薄本,更是游戏本的MagicBook Pro 16.
人们对于笔记本电脑有一个固有印象:要么轻薄但性能一般,要么性能强劲但笨重臃肿。然而,今年荣耀新推出的MagicBook Pro 16刷新了人们的认知——发布会上,荣耀宣布猎人游戏本正式回归,称其继承了荣耀 HUNTER 基因,并自信地为其打出“轻薄本,更是游戏本”的口号。
众所周知,寻求轻薄本的用户普遍更看重便携性、外观造型、静谧性和打字办公等用机体验,而寻求游戏本的用户则普遍更看重硬件配置、性能释放等硬核指标。把两个看似难以相干的产品融合到一起,我们不禁对它产生了强烈的好奇:作为代表荣耀猎人游戏本的跨界新物种,它究竟做了哪些平衡以兼顾不同人群的各类需求呢?