如何在较新版本的 libreoffice 中使用 unoconv
Posted
技术标签:
【中文标题】如何在较新版本的 libreoffice 中使用 unoconv【英文标题】:How to use unoconv with a newer version of libreoffice 【发布时间】:2020-02-12 08:56:25 【问题描述】:我正在尝试使用 python 将加密文档 (doc/docx) 转换为 PDF。
我做的是:
首先在单独的文件夹中暂时解密它们 使用unoconv命令行将解密后的文件转换成pdf:unoconv -f pdf -eSelectPdfVersaion=1 [path-to-file]
转换运行,但我注意到在 doc 和 docx 文件中,文档(解密文件和 pdf)的外观发生了变化,这不会影响原始加密文件(我通过简单的测试从 Windows 客户端解密文件并按原样解密文件)。
外观基本上是影响页面数量的文档样式的变化。例如,一个 13 页的 Word 文档被解密为 14 页的 Word 文档并转换为一个 14 页的 PDF 文件。同样,一个 348 页的 doc 文件被转换为一个 330 页的 doc 文件,然后是一个 330 页的 PDF 文件。
我发现 Microsoft Word 与使用 Unoconv (4.3) 安装的 LibreOffice 版本之间的样式略有不兼容。在进行测试时,我注意到字体已更改为与 LibreOffice 兼容的字体,其大小与原始字体略有不同。
我安装了更高版本的 LibreOffice(5.1、5.3),在我的测试中,解密的 doc/docx 文件具有正确的格式和页码,但 unoconv 没有使用新版本并坚持使用 4.3,因此产生了样式和页码不正确的 PDF 文件。
我尝试使用:
soffice --headless --convert-to pdf [path-to-file] --outdir [path-to-export-directory]
但它什么也没做。
有没有办法将 unoconv 与 4.3 以外的 LibreOffice 版本一起使用?
有没有办法让 --convert-to 命令与 LibreOffice 5.1 甚至 5.3 一起使用?
【问题讨论】:
【参考方案1】:您可以尝试以下几个步骤: 使用
卸载旧版本的 libreofficesudo apt remove libreoffice*
使用安装最新版本的 libreoffice
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get install libreoffice
检查 libreoffice 是否安装成功输入
libreoffice --version
这应该返回版本号
接下来使用安装 Microsoft 字体
sudo apt install ttf-mscorefonts-installer
同时安装您预期文档可能附带的任何其他字体依赖项
最后使用以下命令转换为 pdf。确保没有 libreoffice 应用程序在后台运行
libreoffice --headless --invisible --convert-to pdf "test.docx" --outdir files
你应该在名为 files 的文件夹中找到 pdf
这适用于 ubuntu 18.04.5 LTS。
【讨论】:
谢谢,我会尝试并回复您以上是关于如何在较新版本的 libreoffice 中使用 unoconv的主要内容,如果未能解决你的问题,请参考以下文章
如何在较新版本的 Delphi 中嵌入 YouTube 视频?
如何在较新版本的打字稿中处理打字稿错误 Object.ts (7053)?
SVG sprite 图标背景位置在较新版本的 Chrome 中显示为关闭
在较新版本的 Keras 中,LSTM 等效于 return_sequence = True
在较新版本的 JSF 中,@FacesValidator 和 @FacesConverter 中的 EJB 和 CDI 注入点无法通过 OmniFaces 工作