在 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
在 Ubuntu 下打开的 Excel 文件,由 R、OpenOffice 读取
使用 OpenOffice java api 保存文档会引发异常