我有一个文件夹的.doc
文件,我想转换为.txt
格式。如何在Windows 7中使用LibreOffice的命令行模式来做到这一点?这些文件位于C:\Temp\Test
中。
发布于 2014-07-11 18:49:57
下面是我如何使用PowerShell处理这个任务
注意:在从命令行使用Libreoffice之前,需要关闭LibreOffice的所有现有实例。这意味着关闭LibreOffice的所有GUI会话,检查TaskManager中的soffice.exe
或运行后台的LibreOffice
进程。
一项:
PS &("C:\Program Files (x86)\LibreOffice 4\program\soffice.exe") -headless -convert-to txt:Text -outdir C:\Temp C:\Temp\test\sample.doc
这在C:\Temp
中从文档sample.doc
创建了一个文件sample.doc
。
多项:
foreach ($file in Get-ChildItem C:\Temp\test)
{
&("C:\Program Files (x86)\LibreOffice 4\program\soffice.exe") -headless -convert-to txt:Text -outdir C:\Temp C:\Temp\test\$file | Out-Null
}
这为文件夹C:\Temp\test
中的每个文件创建了一个C:\Temp\test
文件。
再次使用:使用任务管理器来确保以前版本的soffice.exe
没有运行。这意味着关闭LibreOffice的现有GUI版本。
Explanation:
soffice.exe
命令。-convert-to
是本例中的一个重要参数。在使用-convert-to
时,您需要知道output_filter_name是什么(上面示例中的文本)。这些名字的参考资料可以在这里找到。。output_filter_name将是该列表中具有.xcu
后缀的文件的名称。.doc
文件转换为.pdf
,我将使用参数-convert-to pdf:writer_pdf_Export
(未经测试)。
.exe
进程需要通过管道传输到Out-Null
,以避免相互重叠。围棋数字。发布于 2015-05-08 10:45:21
上面的解决方案非常接近,但需要在LibreOffice 4.2 /Linux上做一些修改:
soffice --headless --convert-to txt:Text /path_to/file_to_convert.odt
(我是用odt做的,我遵循的例子是doc:http://ask.libreoffice.org/en/question/14130/how-do-i-install-filters-for-the-soffice-command/)
发布于 2016-07-15 13:21:11
添加到@kevinaskevin的回答中的另一件重要的事情是--解决办法是:
从发展中心通过IRC:
LO的“用户安装”(即~/config/libreoffice
)不是为多个进程同时访问而设计的;因此,当一个soffice.bin已经为特定的用户安装运行时,附加的soffice.bin只是将它们的cmd行args转发到第一个,然后立即终止(也就是说,它们不应该在非零退出值的意义上“失败”)。
如果您想要一个独立的无头LO,您可以通过自己的用户安装-env:UserInstallation=<file URL to dir>
启动它。
https://stackoverflow.com/questions/24704536
复制相似问题