问题描述
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。