在 Windows 上使用 Openoffice 将 ODT 转换为 PDF

Posted

技术标签:

【中文标题】在 Windows 上使用 Openoffice 将 ODT 转换为 PDF【英文标题】:Convert ODT to PDF with Openoffice on Windows 【发布时间】:2014-06-30 15:20:21 【问题描述】:

我的 Windows 系统中有许多 .odt 文件。我想将这些文件转换为 PDF。我在命令行中尝试过

soffice.bin --headless -convert-to pdf:"writer_pdf_Export" c:\MyOdtFile.odt

但是,它不起作用。此方法只能打开文件,不能转换! 我该怎么做?

【问题讨论】:

是否可以选择使用 libreoffice 而不是 OpenOffice? LO 支持开箱即用的命令行 pdf 转换。 另见***.com/q/355447/342546 是的,我可以使用 LO 代替 Openoffice。其实我是在你commet之后安装的便携版和普通版。但它不起作用。我尝试使用该命令: soffice.bin --headless -conver-to:pdf:"writer_pdf_Export" c:\Myfile.odt 【参考方案1】:

使用 LibreOffice,以下命令应该可以工作:

soffice.exe --headless -convert-to pdf --outdir <output directory> <file1.odt> <file2.odt>

转换为 pdf 时,-convert-to pdf 就足够了。 --outdir 参数是可选的;如果您不使用它,PDF 将在当前工作目录中创建。使用soffice.bin 对我不起作用(缺少sal3.dll),但soffice.exe 有效(LibreOffice 4.2.4.2,Win 7)。如果soffice.exe 不在您的路径中,则必须显式设置 PATH 或将完整路径添加到上述命令中:

' "C:\Program Files (x86)\LibreOffice 4\program\soffice.exe" --headless -convert-to pdf --outdir C:\temp test1.odt`

确保在发出转换命令时 LO 没有运行 - 否则转换将失败且没有错误消息。

【讨论】:

【参考方案2】:

要添加到@tohuwawohu 的答案......他写道:

确保在发出转换命令时 LO 没有运行 - 否则转换将失败且没有错误消息。

这可以通过在命令行中添加另一个参数来消除:

-env:UserInstallation=file:///tmp/LibreOffice_Conversion_$USER"

这将为$USER 的 LibreOffice 无头实例创建一个新环境,如果他已经运行了一个非无头 GUI 实例。

这样,无头实例不会与已经运行的实例发生冲突。

【讨论】:

LO 的多个实例怎么样?您需要更改每个实例的临时文件路径吗? @AkashKava:是的。 (但我从未尝试以同一个用户身份运行多个无头实例......)

以上是关于在 Windows 上使用 Openoffice 将 ODT 转换为 PDF的主要内容,如果未能解决你的问题,请参考以下文章

python中的新手:在Windows上使用Apache OpenOffice 4的pyodconverter

在 Windows 和 CentOS 上使用 PyUNO

在 Ubuntu 下打开的 Excel 文件,由 R、OpenOffice 读取

使用 OpenOffice java api 保存文档会引发异常

我如何在 Windows 7 中启动服务 openOffice,我有这条线命令,但我不知道如何使用它

OpenOffice配置成Windows服务