CentOS下使用LibreOffice实现文档格式的转换方式
时间:2022-07-27
本文章向大家介绍CentOS下使用LibreOffice实现文档格式的转换方式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
项目需求,对上传的文档进行一些预处理,如果用户上传了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
文件夹里。
默认情况下:
- 会使用源文件名+新的扩展名保存输出文件;
- 会覆盖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实现文档格式的转换方式,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对ZaLou.Cn网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 【Vue.js】Vue.js组件库Element中的下拉菜单、步骤条、对话框和文字提示
- Win10触控板多指触控、手势操作教程
- 【Vue.js】Vue.js组件库Element中的弹出框、气泡确认框、卡片和走马灯
- 【Vue.js】Vue.js组件库Element中的折叠面板、时间线、分割线和日历
- 从Properties乱码来学习编码
- 【Vue.js】Vue.js组件库Element中的图片、回到顶部、无限滚动和抽屉
- Java逐行读取和写入文件
- Vuejs使用v-for指令实现九九乘法表
- Cypress系列(43)- visit() 命令详解
- 在GitLab pages上快速搭建Jekyll博客
- Dubbo项目中No provider available for the service xxx from registry xxx on the consumer问题的解决思路
- Mysql面对高并发修改的问题处理【2】
- java (多网卡环境下)发送组播广播(multicast/broadcast)失败问题
- activmq:android平台下使用openwire协议连接activemq服务的问题
- Leetcode No.9 回文数