如何从命令行使用LibreOffice将.doc文件转换为.txt?

我有一个.doc文件的文件夹,我想转换为.txt格式。 我怎样才能在Windows 7中使用LibreOffice的命令行模式? 这些文件位于C:\Temp\Test

Solutions Collecting From Web of "如何从命令行使用LibreOffice将.doc文件转换为.txt?"

以下是我如何使用Windows PowerShell处理此任务

注意:在从命令行使用LibreOffice之前, 您需要关闭Libreoffice的所有现有实例 。 这意味着要关闭LibreOffice的所有GUI会话,以及检查运行后台的soffice.exeLibreOffice进程的TaskManager。

一个项目:

 PS &("C:\Program Files (x86)\LibreOffice 4\program\soffice.exe") -headless -convert-to txt:Text -outdir C:\Temp C:\Temp\test\sample.doc 

这样从文档sample.docC:\Temp创建了一个文件sample.txt

多个项目:

 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中的每个文件创建了一个.txt文件

再次:使用任务管理器来确保以前版本的soffice.exe没有运行。 这意味着关闭LibreOffice的现有GUI版本。

说明:

  • 以下是有关使用参数启动LibreOffice软件的文档。 这将解释上面执行的soffice.exe命令。
  • 无头模式在没有GUI的情况下启动LibreOffice软件。 我把这个问题称为“命令行模式”。
  • -convert-to这个例子中的一个重要的参数。 使用-convert-to ,需要知道output_filter_name是什么(上例中的文本 )。 这些名字的参考可以在这里找到 。 output_filter_name将是该列表中具有后缀.xcu的文件的名称
    • 例如,如果我想将我的.doc文件转换为.pdf我将使用参数-convert-to pdf:writer_pdf_Export (未经测试)
  • 这是我在回答这个问题时使用的一个参考。
  • 由于某些原因, .exe进程需要通过管道进行Out-Null以避免相互重叠。 去图 。

一个额外的重要的事情,以增加到@ kevinaskevin的答案是 – 解决方法是:

从开发者经IRC:

LO的“用户安装”(即~/config/libreoffice )不能被多个进程同时访问; 所以当一个soffice.bin已经运行了一个特定的用户安装时,额外的soffice.bin只是将它们的cmd行参数传递给第一个,并立即终止(即它们不应该退出非零退出值)

如果你想要一个独立的无头LO,你可以用自己的用户安装启动它, -env:UserInstallation=<file URL to dir>

上面的解决方案非常接近,但需要对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/&#xFF09;