Utiliser l'extension de ligne de commande --convert-to pour convertir des documents sous Windows 10

From The Document Foundation Wiki
< Faq‎ | General‎ | 150
Jump to: navigation, search

Note

Nous prenons l'exemple d'une conversion de .docx vers .odt, mais la syntaxe et les étapes à suivre sont les mêmes pour les autres formats supportés par LibreOffice.

Contexte

Sous MS-Windows 10 on peut utiliser une commande telle que soffice.exe --convert-to odt my_document.docx pour convertir my_document.docx du format Microsoft docx vers le format Open Documents (odt). L'extension --convert-to permet de spécifier un ensemble de documents en utilisant la syntaxe générique de spécification des fichiers. Par exemple on peut utiliser *.docx pour désigner l'ensemble des fichiers .docx présents dans le répertoire courant.

Problème

Lorsque cette extension est utilisée dans l'interface de commande de Windows, rien ne va plus si on a plus d'un fichier. Il semble que LibreOffice ne supporte pas d'être exécuté en plusieurs instances lorsqu'il est lancé en ligne de commande. Si on tente une conversion sur plusieurs fichiers, rien ne semble se passer, et on se retrouve en gros avec 2 fois autant de process LibreOffice qu'il y avait de fichiers à traiter. Lorsque vous tuez manuellement ces process, vous pouvez obtenir deux ou trois fichiers convertis, aléatoirement.

Solution

Pour palier ceci, le plus simple est d'utiliser le Windows Subsystem for Linux Environment fourni par Microsoft pour Windows 10. Vous pouvez l'installer simplement en suivant les instructions données ici : https://docs.microsoft.com/en-us/windows/wsl/install-win10. Une fois installé, vous avez accès à un shell bash apparemment complet et fonctionnel, et l'extension --convert-to fonctionne correctement.

Pour faire court

  1. Identifier le chemin complet vers soffice.exe.
  2. Changer de répertoire vers celui contenant les fichiers à convertir et créer un répertoire de réception pour être plus propre.
  3. Passer cette commande : <path to soffice.exe> --convert-to odt --outdir <my_output_directory> *.docx

Exemple :

"/mnt/c/Program Files/LibreOffice 5/program/soffice.exe" --convert-to odt --outdir ./Converted_To_odt *.docx convertira les fichiers docx présents dans le répertoire courant en leur équivalent au format .odt et les placera dans le sous-répertoire ./Converted_To_odt.

Pourquoi ?

WSL monte un file-système complet, pour lui-même. Donc la syntaxe utilisée pour spécifier l'emplacement d'un fichier est différente de celle de Windows. La première différence est le dossier racine : Sous Windows, il est traditionnellement C:\, l'équivalent dans le shell bash est /mnt/c/. Ensuite, le séparateur d'éléments sous Windows est le \, alors que sous Unix c'est le /. Pour le reste, les règles sont les mêmes, le shell bash supporte les mêmes jeux de caractères que Windows ainsi que les spécifications de noms de fichiers longs et comportant des espaces, pourvu qu'on les entoure de doubles-guillemets (").

Comment trouver la commande ?

Le plus simple pour trouver soffice.exe est d'examiner le raccourci utilisé pour démarrer normalement LibreOffice. Faire un double-click dessus, cliquer sur "Propriétés", puis copier le contenu du champ "Cible". Dans notre exemple, on obtient "C:\Program Files\LibreOffice 5\program\soffice.exe". Il faut ensuite ajuster la syntaxe aux règles du bash et on obtient ceci : "/mnt/c/Program Files/LibreOffice 5/program/soffice.exe" Attention, Unix distingue les majuscules/minuscules, pas Windows.

Arrivés là, vous avez tout en mains.

Conclusion

L'utilisation du shell bash sous Windows 10 est une manière rapide et efficace de convertir par lots des ensembles de fichiers en utilisant une fonction offerte par LibreOffice lorsqu'on l'invoque en ligne de commande. Le travail se fait sans heurt, efficacement.

Ou la solution simple, interactive

Si on redoute la ligne de commande, il est encore plus simple d'utiliser l'Assistant de Conversion des documents de LibreOffice, tel que décrit ici, par exemple : https://help.libreoffice.org/latest/fr/text/shared/autopi/01130000.html.

Pour le démarrer, Menu Fichiers - Assistants - Convertisseur de Documents...

Toutefois un utilisateur a rapporté qu'il avait dû partager un lot d'environ 2'000 fichiers en paquets de 200, car sinon la conversion se plantait.