Using the --convert-to command-line function to convert formats under Windows 10

From The Document Foundation Wiki
< Faq‎ | General
Jump to: navigation, search
This page is a translated version of the page Faq/General/150 and the translation is 93% complete.

Other languages:
čeština • ‎dansk • ‎English • ‎français • ‎italiano

Poznámka

V textu budeme uvažovat o převodu z .docx do .odt, ale syntaxe a kroky jsou stejné i pro další formáty, které LibreOffice podporuje.


Kontext

V MS Windows 10 můžeme použít příkaz soffice.exe --convert-to odt my_document.docx pro provedení převodu "my_document.docx" z formátu MS docx do formátu Open Document (odt). Funkce "--convert-to" umožňuje specifikovat množinu dokumentů s použitím zástupných znaků pro soubory. Například je možné použít *.docx, když máte balík souborů .docx, které chcete převést. Tyto soubory musí být v jedné složce.


Problém

Když však tento příkaz použijete v příkazovém řádku Windows, vůbec nefunguje. Zdá se, že všechny převody jsou spuštěny současně a protože dvě instance LibreOffice (soffice.exe) nemohou při spuštění z příkazového řádku běžet současně, proces nikdy neskončí. V nejlepším případě budete mít jeden nebo dva převedené soubory, ale v každém případě budete muset manuálně ukončit balík procesů LibreOffice, které budou v systému spuštěny (na první pohled bude procesů dvakrát tolik než je souborů).


Řešení

Pro překonání tohoto problému je jednoduché řešení použití nového subsystému Windows pro Linux Environment, který je poskytnutý MS pro Windows 10. Možná budete muset tento subsystém nainstalovat, což je celkem jednoduché, pokud budete postupovat podle dokumentace na stránce https://docs.microsoft.com/en-us/windows/wsl/install-win10.


Po instalaci budete mít přístup k docela pěknému příkazovému řádku běžícímu nad základním systémem Windows a funkce "--convert-to" bude bez problémů pracovat v synchronním módu.


Krátká ukázka

  1. Zjistěte si cestu k souboru soffice.exe.
  2. Po vytvoření cílového adresáře přejděte do adresáře, který obsahuje soubory k převodu.
  3. Zadejte tento příkaz: <cesta k soffice.exe> --convert-to.odt -outdir <cilovy_adresar>*.docx.


Příklad

"/mnt/c/Program Files/LibreOffice 5/program/soffice.exe" --convert-to odt --outdir ./Converted_To_odt *.docx převede soubory docx z aktuálního adresáře do souborů odt do adresáře ./Converted_To_odt.


Proč?

WSL připojuje celý souborový systém sám. Syntaxe pro určení umístění souboru v adresářovém stromu se tedy liší od syntaxe systému Windows. První rozdíl je kořen adresářového stromu: Ve Windows je to C:\, ekvivalentem v bashi (bash = příkazový řádek Linuxu) je /mnt/c. Dalším rozdílem je oddělovač adresářů - ve Windows je to \, v bashi je to /. Zbývající prvidla jsou již stejná - bash podporuje stejnou znakovou sadu jako příkazový řádek Windows, podporuje i dlouhá jména souborů a jména souborů s mezerami, pokud jsou oddělovány uvozovkami (").


Jak vytvořit příkaz?

Nejjednodušší způsob je prozkoumat zástupce, kterého používáte při spouštění LibreOffice. Pravým tlačítkem na něj kliknete, z kontextové nabídky vyberete "Vlastnosti" a následně zkopírujete obsah pole "Cíl". V ukázce výše to bude "C:\Program Files\LibreOffice 5\program\soffice.exe". Poté upravte syntaxi podle pravidel bashe, jak je popsáno výše, a dostanete toto: "/mnt/c/Program Files/LibreOffice 5/program/soffice.exe" Pozor! Unix (Linux) rozlišuje velká a malá písmena, Windows ne.


A je hotovo.


Závěr

Použití příkazové řádky bash ve Windows je snadný způsob, jak převést spoustu souborů z jednoho formátu do jiného, pomocí vestavěné funkce příkazového řádku LibreOffice.


Nebo jednodušší způsob - interaktivní

LibreOffice umožňuje i jednodušší způsob konverze dokumentů - vestavěný konvertor dokumentů, jak je popsáno zde: https://help.libreoffice.org/latest/cs/text/shared/autopi/01130000.html


Můžete jej spustit z menu Soubory ▸ Průvodci ▸ Konvertor dokumentů...


Někteří uživatelé hlásili, že museli rozděli soubory do balíků po 200 souborech, protože převod více souborů někdy neproběhl v pořádku.