python word转pdf linux_Linux下使用LibreOffice+python将doc/docx/wps格式的文档转成html/txt/docx等格式...

Linux下的word文档格式转换工具

最近接到一个需求,要将所有不同格式的文档(包括.doc/.docx/.wps)转成统一格式,如都转为.docx,或直接转为.html 或.txt。经调研后,发现有这样几款工具:

win32com

python-docx

pydocx

可能还有,我就不再赘述了。经过全面调研,我发现这些工具存在这样的问题——Python相关工具要么无法处理.doc(只能处理.docx),要么要求必须在windows环境下使用(如win32com)。当前大家的生产环境一般都是Linux环境,更换win服务器会造成一系列的连带问题,比如其他库是否兼容等等,非常麻烦,所以找到.doc/.wps在Linux下的处理方式非常重要。还好,最后被我找到了,那就是LibreOffice

LibreOffice具体用法

首先,直接在命令行执行libreoffice --version,看看你是否已经安装此款工具。如果还没有安装,参考下文安装LibreOffice

安装完毕后,使用以下命令,对待转格式的文档进行格式转换,示例如下:

将.doc格式文档转为txt格式:

libreoffice --headless --convert-to txt path-to-your-doc.doc

你同样可以指定转换后的文件输出路径,也可以批量地将doc/docx/wps文件传给LibreOffice接口:

libreoffice --headless --convert-to html --outdir /your/output/dir /your/doc_docx_wps/files/*.{dosx,doc,wps}

使用python脚本执行格式转换

这个其实没什么玄乎的,就是用Python执行命令行而已:

import os

os.system("libreoffice --headless --convert-to txt path-to-your-doc.doc")

当然,如果你嫌这个接口的单进程速度太慢,你也可以用Python执行多进程启动转换:

import subprocess

import os, glob

from multiprocessing.dummy import Pool

def worker(fname, dstdir=os.path.expanduser("~")):

subprocess.call(["libreoffice", "--headless", "--convert-to", "pdf", fname], cwd=dstdir)

pool = Pool()

pool.map(

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值