使用 libreoffice 插件将word文档 doc转html

近期有个接到个项目,要将word文档批量导入新闻,便开始研究怎么将word转成html,查阅资料,发现有几种实现方式

方法一,phpword

通过composer require phpoffice/phpword 将phpword插件安装下来

使用方法:

  1. require 'vendor/autoload.php';

  2. $phpWord = \PhpOffice\PhpWord\IOFactory::load('test.docx');

  3. $xmlWriter = \PhpOffice\PhpWord\IOFactory::createWriter($phpWord, "HTML");

  4. $xmlWriter ->save('test.htm');

当我使用这个phpword插件的时候出现了好几个弊端:

问题1:该插件只支持以.docx结尾的word文档,不支持.doc文档

问题2:使用该插件有些html元素标签不能识别,如a标签,<ol></ol>,<li></li>等一些元素标签不能使用

因此便淘汰了该方法

方法二,com组件

这边我就不描述该方法了,因为我没有使用这个方法,因为只支持在windows下使用的,我用是要在linux上使用,该方法便淘汰了

方法三,libreoffice插件

后面通过查阅很多资料发现使用php将word转html的并不多,没有办法只能通过查阅资料,寻找通过linux下将word文档转html,便找到了该方法

libreoffice有window版本的,也有linux版本的,我这里就介绍linux下如何使用该插件

先执行命令行进行安装插件:

yum install libreoffice libreoffice-headless

当你装好插件后就可以直接通过命令行将word文档转html文件了。

soffice --headless --convert-to html:HTML test.docx

不过通过将word转成html后,发现word文档里面的字母变小了

通过查看生成的html源码,发现是Linux默认系统语言下是zh-CN,导致出现的不兼容,将系统语言改成en_US就没有问题了

也可以在生产html文件的命令行上加上LANG=en_US.UTF-8就行了

LANG=en_US.UTF-8 soffice --headless --convert-to html:HTML test.docx

以上就是使用libreoffice插件将word文档转成html文件的,不过有些兼容问题,但是这个插件支持doc和docx结尾的word文件,非常好用。

分享就到这了,如果有问题可以在底下留言,看到了会回复的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值