簡體   English   中英

如何從命令行使用LibreOffice將.doc文件轉換為.txt?

[英]How do I convert .doc files to .txt using LibreOffice from the command line?

我有一個.doc文件文件夾,我想將其轉換為.txt格式。 如何在Windows 7中使用LibreOffice的命令行模式來做到這一點? 這些文件位於C:\\Temp\\Test

這是我使用Windows 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

這從文件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行args轉發至第一個,然后立即再次終止(即,從以a退出的意義上講,它們不應“失敗”)非零退出值)

如果需要獨立的無頭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/)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM