如何在 OpenOffice 中使用 PyOD?

问题描述

PyOD 是一个超级简单的 Python 库 (https://github.com/mirkonasato/pyodconverter)。

它有一个命令用法

> "C:\Program Files (x86)\OpenOffice 4\program\python-core-2.7.18" DocumentConverter.py test.odt test.pdf

这应该将 test.odt 转换为 pdf。我使用的是自己的 PC,而不是 VPS。

我不知道如何使用这个命令。我已经用了 3 个小时,我没有 Python 或命令行方面的经验。

我试过从 `cmd.exe 运行这个

cd /
python "C:\Program Files (x86)\OpenOffice 4\program\python-core-2.7.18" DocumentConverter.py test.odt test.pdf

但它给了我这个错误

C:\Users\user\AppData\Local\Microsoft\WindowsApps\PythonSoftwareFoundation.Python.3.9_qbz5n2kfra8p0\python.exe: can't find '__main__' module in 'C:\\Program Files (x86)\\OpenOffice 4\\program\\python-core-2.7.18'

我完全不知道这意味着什么,谷歌没有帮助。

我也试过

cd Program Files (x86)\OpenOffice 4\program\python-core-2.7.18
DocumentConverter.py test.odt test.pdf

所做的只是尝试打开文件。它问我想用什么打开它,我选择了 Python.exe,它只是打开一个 python 终端然后立即关闭它,python-core-2.7.18 中没有新文件,所以我假设它不起作用。

然后我尝试直接从 python.exe 打开 python-core-2.7.18 并运行 DocumentConverter.py test.odt test.pdf 但它说我的语法无效。

我真的不知道如何使用python。这是一个 PHP 项目,我实际上只使用了 Python 的一小部分。

解决方法

我没听说过 PyOD,但我们假设它像其他 Python-UNO 脚本一样工作。首先,确保启动 Apache OpenOffice 侦听套接字,如 GitHub 页面所述。

soffice -accept=socket,host=localhost,port=2002;urp;

接下来,打开命令提示符并转到启用 UNO 的 python 可执行文件所在的目录。然后验证一下。

cd C:\Program Files (x86)\OpenOffice 4\program
python
>>> import uno

如果没有错误,那么退出 python 提示。 Chdir 到 DocumentConverter.py 和您的文件所在的目录。然后根据 GitHub 页面,这应该可以工作:

"C:\Program Files (x86)\OpenOffice 4\program\python" DocumentConverter.py test.odt test.pdf

另一个问题:您是否出于特定原因选择 AOO 而不是 LibreOffice?如果您不熟悉该套件,您可能想先尝试 LibreOffice,因为它已经开发得更多并且可能更容易上手。

最后,还有更简单的方法可以在不使用 Python 的情况下从 PHP 调用 LibreOffice。在 PHP 中,您应该能够使用带有 --convert-to 参数的系统调用。例如,参见Command `libreoffice --headless --convert-to pdf test.docx --outdir /pdf` is not working