unoconv是一个通过调用LibreOffice进行文档转换的命令行工具。使用的前提是系统中必须已经安装了LibreOffice。它利用了LibreOffice的UNO绑定。
unoconv其实是一个python代码写的工具。
我此处想利用unoconv更新docx文档的目录。
在Ubuntu下,如果unoconv包没有安装,可以先执行命令
sudo apt install unoconv
进行安装。我前面已经安装过了:
输入文档格式、输出文档格式必须是LibreOffice支持的格式。
输出文档格式可以使用unoconv --show
命令查看。下面是部分输出格式截图:
unoconv参数很多,使用方法可以用命令man unoconv
查看。
转换前,可以使用命令
soffice "--accept=socket,host=localhost,port=2002;urp;"
启动一个LibreOffice实例进行监听。如果不手工启动,unoconv会自己启动一个LibreOffice实例。
例如,目录更新前的文档是pangsource.docx,目录更新后的文档保存为test.docx,执行命令unoconv -f docx -o test.docx pangsource.docx
即可转换。(注意:为了防止转换出问题从而污染了源文档,所以一定要将转换后的文档保存为另外的文档名称)
其中命令中的选项-f docx指定输出格式仍然为docx文档,-o test.docx指定了输出文档名称。也就是说,此处输入、输出文档都格式是docx文档,我就是想让unoconv来更新文档的目录。
执行命令更新前目录截图:
执行命令更新后目录截图:
可以发现,巧妙利用unoconv转换功能,docx文档的目录进行了更新。