之前简单介绍过用libreoffice将word、excel、ppt等转换为pdf格式,实现在浏览器中直接预览文档。最近做了个功能libreoffice又再次派上了它的用场。
功能点是网页端直接导入.doc、.docx格式的文档,然后网页端直接显示文档内容供用户再次进行编辑。类似于下图
网上也看了点能实现这方面功能的比如说doc2html、mammoth等,其原理归根结底还是将doc转换为html。突然想到之前服务器上安装的libreoffice可以轻松的实现这一转换。整体思路:前端上传文档到服务器,利用libreoffice将文档转换为html,读取html内容返回给前端。
libreoffice --invisible --convert-to html:HTML /user/test.doc --outdir /user/file
注意点:如果文档里面含有图片,libreoffice转换出来的图片是跟html同级目录下的,html里面是图片的相对路径,而一般的前端文档编辑器比如说vue-quill-editor里面图片是保存的base64格式,所以后端在返回html需要将图片地址替换成服务器图片路径,才能正确显示。