Conversion par lots de fichiers DOCX en PDF avec l'interface de ligne de commande de LibreOffice

Si vous avez un dossier contenant des fichiers Word, LibreOffice peut les convertir en une seule commande. Dans le dossier contenant les fichiers DOCX, créez un dossier de sortie vide et exécutez la commande libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir pdf *.docx. Cette opération utilise le filtre d'exportation PDF de Writer et conserve les fichiers originaux.

Utilisez un nouveau dossier de sortie, vérifiez que LibreOffice est installé et contrôlez les fichiers PDF générés plutôt que de considérer la sortie réussie de la commande comme une preuve que chaque page est correcte. La ligne de commande est un outil pratique de traitement par lots ; elle ne garantit pas une pagination identique à celle de Microsoft Word ni la réparation des documents endommagés.

Exécutez une conversion par lots simple

Sous Linux, ouvrez un terminal dans le répertoire contenant les fichiers. Créez d'abord le répertoire de sortie :

mkdir -p pdf
libreoffice --headless --convert-to pdf:writer_pdf_Export --outdir pdf *.docx

--headlessCe script s'exécute sans ouvrir la fenêtre de bureau habituelle. --convert-toIl sélectionne le format PDF comme format de destination, writer_pdf_Exportnomme le filtre d'exportation PDF de LibreOffice Writer et --outdir pdfenregistre les résultats dans le pdfdossier. L'interpréteur de commandes recherche *.docxles fichiers correspondants avant le lancement de LibreOffice. LibreOffice documente cette syntaxe de conversion et le nom du filtre dans sa documentation de référence des paramètres de ligne de commande et sa liste de filtres de conversion de fichiers .

Le terminal Linux affiche une commande batch LibreOffice convertissant des fichiers DOCX en PDF et listant les PDF résultants.
Exemple de sortie du terminal après l'envoi d'un petit lot de fichiers DOCX vers LibreOffice avec le filtre d'exportation PDF de Writer.

Choisissez le bon modèle de lot

La commande avec caractères génériques est optimale lorsque tous les fichiers DOCX se trouvent dans un même dossier. Elle n'effectue pas de recherche dans les sous-dossiers. Sous Linux, la recherche est sensible à la casse par défaut et *.docxpeut donc ignorer les fichiers se terminant par un point .DOCX. Si l'interpréteur de commandes indique que la recherche n'a pas abouti, listez les fichiers et vérifiez leurs extensions avant de modifier la commande.

Pour les documents imbriqués dans des sous-dossiers, une boucle permet de préserver l'arborescence des répertoires et d'éviter les conflits lorsque deux dossiers contiennent un fichier portant le même nom. Définissez la boucle inputsur l'arborescence source et pdfsur une arborescence de destination distincte :

input="$PWD/input"
output="$PWD/pdf"
profile="file:///tmp/lo-batch-profile"

find "$input" -type f -iname '*.docx' -print0 |
while IFS= read -r -d '' file; do
  rel="${file#"$input"/}"
  dest="$output/$(dirname "$rel")"
  mkdir -p "$dest"
  libreoffice --headless \
    -env:UserInstallation="$profile" \
    --convert-to pdf:writer_pdf_Export \
    --outdir "$dest" "$file"
done

-print0La correspondance read -d ''gère en toute sécurité les espaces et la plupart des caractères spéciaux dans les noms de fichiers. Le profil distinct empêche ce traitement par lots d'entrer en conflit avec une session LibreOffice de bureau utilisant le même profil utilisateur ; consultez la documentation de référence de démarrage de LibreOffice -env:UserInstallation. Utilisez un chemin de profil unique si deux conversions peuvent s'exécuter simultanément. Placez l'arborescence de sortie en dehors de l'arborescence d'entrée afin que la recherche n'inclue pas les résultats précédents.

Le terminal Linux affiche une boucle basée sur la recherche, envoyant des documents de dossiers imbriqués vers des dossiers de sortie PDF correspondants.
Exemple d'une boucle de recherche récursive écrivant des fichiers PDF dans un sous-dossier PDF à côté de chaque dossier source, ce qui permet de séparer les fichiers portant le même nom dans des dossiers différents.

Lorsque LibreOffice est déjà ouvert

Une commande peut sembler se terminer sans produire de fichiers ou se connecter à un processus LibreOffice existant. Une instance de bureau en cours d'exécution peut conserver le profil utilisateur par défaut. Fermez LibreOffice et réessayez ; pour les tâches automatisées, l' -env:UserInstallationoption d'isolation de l'exemple récursif constitue une sécurité utile. Attribuez à chaque tâche simultanée son propre répertoire de profil et attendez la fin d'une tâche avant de réutiliser ce répertoire.

Si la commande indique libreoffice: command not foundd'installer LibreOffice via le gestionnaire de paquets de votre système d'exploitation ou en utilisant le chemin complet de l'exécutable, vous pouvez le faire. Sous Windows PowerShell, un script batch non récursif simple peut s'écrire comme suit :

$src = (Resolve-Path .).Path
$out = Join-Path $src 'pdf'
New-Item -ItemType Directory -Force -Path $out | Out-Null
$soffice = "$env:ProgramFiles\LibreOffice\program\soffice.exe"
Get-ChildItem -File -Filter *.docx | ForEach-Object {
  & $soffice --headless --convert-to pdf:writer_pdf_Export --outdir $out $_.FullName
}

Adaptez la procédure $sofficesi LibreOffice est installé ailleurs. Exécutez la commande depuis le dossier source et définissez un nouveau dossier de sortie. PowerShell effectue Get-ChildItem -Fileses recherches uniquement dans ce dossier, sauf si la récursivité est activée ; les tâches récursives nécessitent une boucle créant un dossier de destination pour chaque chemin source.

Quels sont les éléments qui peuvent influencer le résultat ?

La conversion en PDF préserve la mise en page interprétable par LibreOffice, mais la pagination des documents n'est pas toujours identique entre Word et LibreOffice. L'absence de polices, d'objets incorporés non pris en charge, de suivi des modifications, de champs ou de tableaux complexes peut entraîner des décalages dans les sauts de ligne et le nombre de pages. Pour une typographie homogène, installez les polices requises avant la conversion. Les fichiers protégés ou chiffrés par mot de passe peuvent nécessiter des identifiants pour être ouverts ou traités manuellement, et un fichier DOCX endommagé peut ne pas être converti, même si d'autres fichiers le sont.

N’exécutez pas le traitement par lots de manière répétée dans un dossier contenant des fichiers PDF importants portant le même nom. Utilisez un dossier de destination vierge ou sauvegardez d’abord les fichiers générés. Si un fichier est particulièrement important, ouvrez-le dans LibreOffice Writer et vérifiez-le avant de vous fier au PDF. Si une pagination Microsoft Word exacte est une exigence contractuelle, LibreOffice n’est peut-être pas le logiciel de rendu approprié ; comparez-le avec un exemple représentatif dans l’application qui définit la mise en page requise.

Le terminal Linux affiche LibreOffice fonctionnant en mode sans interface graphique avec un profil UserInstallation distinct avant l'exportation PDF.
Exemple de commande utilisant un profil utilisateur LibreOffice distinct pour une conversion automatisée.

Vérifiez le résultat avant de le partager.

Commencez par comparer le nombre de fichiers sources avec le nombre de fichiers PDF. Sous Linux, ces commandes comptent les fichiers dans un dossier plat :

find . -maxdepth 1 -type f -iname '*.docx' | wc -l
find pdf -maxdepth 1 -type f -iname '*.pdf' | wc -l

Pour une conversion récursive, comparez plutôt les comptes sur l'ensemble des arbres d'entrée et de sortie. Un compte correspondant est un indicateur utile, mais ne constitue pas une garantie de qualité : un document corrompu ou un doublon écrasé peut nécessiter une vérification. Consultez le journal du terminal pour détecter les erreurs et assurez-vous que chaque nom de fichier attendu figure bien dans le répertoire de destination.

Examinez des PDF représentatifs dans une visionneuse PDF. Vérifiez la première et la dernière page, le nombre de pages, les marges, les tableaux, les en-têtes et pieds de page, les images et les sauts de page importants. Si un pdfinfologiciel est installé, pdfinfo pdf/Report.pdfil fournit des métadonnées telles que le nombre et la taille des pages ; il n’évalue pas la qualité visuelle. Ne reconvertissez qu’après avoir corrigé un problème spécifique, comme l’installation d’une police manquante ou la modification du répertoire de sortie, puis examinez à nouveau les PDF concernés.

Le terminal Linux affiche les informations pdfinfo, notamment le nombre de pages, la taille des pages et la taille du fichier PDF converti.
Exemple de vue de vérification affichant les métadonnées PDF telles que le nombre de pages et le format du papier.

Le traitement par lots est prêt lorsque tous les fichiers PDF attendus existent, s'ouvrent sans erreur et que les pages importantes conservent leur mise en page d'origine. Pour les archives volumineuses, conservez les fichiers DOCX originaux et les journaux de conversion afin de pouvoir identifier une erreur et relancer le traitement sans écraser les fichiers non pertinents.

Laisser un commentaire

Conversion par lots de fichiers DOCX en PDF avec l'interface de ligne de commande de LibreOffice

Conversion par lots de fichiers DOCX en PDF avec l'interface de ligne de commande de LibreOffice

Convertissez un dossier de documents Word en PDF avec les commandes LibreOffice, gérez les dossiers imbriqués en toute sécurité et vérifiez le résultat avant de le partager.

Faites en sorte que chaque nouveau document d'écriture utilise votre modèle.

Faites en sorte que chaque nouveau document d'écriture utilise votre modèle.

Définissez un modèle LibreOffice Writer personnalisé comme modèle par défaut pour que les nouveaux documents s'ouvrent avec vos styles et votre mise en page préférés.

Configurez LibreOffice pour qu'il reconnaisse votre environnement d'exécution Java.

Configurez LibreOffice pour qu'il reconnaisse votre environnement d'exécution Java.

Installez un environnement d'exécution Java compatible, activez-le dans LibreOffice et résolvez le problème d'une liste JRE vide sans modifier les paramètres non liés.

Exécuter LibreOffice en mode sans interface graphique dans Docker pour la conversion de PDF

Exécuter LibreOffice en mode sans interface graphique dans Docker pour la conversion de PDF

Créez un petit conteneur LibreOffice, convertissez des documents bureautiques sans interface graphique et vérifiez la sortie PDF tout en limitant l'accès aux fichiers hôtes.

Réduire la taille des fichiers LibreOffice Impress sans flouter les images

Réduire la taille des fichiers LibreOffice Impress sans flouter les images

Réduisez la taille excessive des fichiers de présentation LibreOffice en compressant les photos intégrées, en choisissant des paramètres d'image appropriés et en vérifiant la qualité des diapositives avant de les partager.

Empêcher le recadrage des impressions de format personnalisé dans LibreOffice

Empêcher le recadrage des impressions de format personnalisé dans LibreOffice

Avant d'imprimer un document de format personnalisé, assurez-vous que les dimensions de la page de LibreOffice correspondent à celles de votre imprimante, vérifiez les marges imprimables et corrigez la mise à l'échelle.

Accélérez les macros Calc en lisant et en écrivant des données par lots.

Accélérez les macros Calc en lisant et en écrivant des données par lots.

Remplacez les accès répétés aux cellules par des lectures et écritures groupées de plages, puis évaluez le résultat et protégez les formules dans les grands classeurs Calc.

Organiser un livre LibreOffice avec des documents maîtres liés

Organiser un livre LibreOffice avec des documents maîtres liés

Divisez un long manuscrit en chapitres, assemblez-les dans Writer et veillez à la cohérence des styles, du contenu et des contrôles d'exportation.

Connectez LibreOffice Base à PostgreSQL grâce à l'assistant intégré

Connectez LibreOffice Base à PostgreSQL grâce à l'assistant intégré

Utilisez l'option PostgreSQL directe de Base pour saisir les détails de votre serveur, vous connecter, enregistrer un fichier de connexion ODB et résoudre les erreurs d'accès courantes.

Rendre les polices personnalisées disponibles pour LibreOffice Flatpak

Rendre les polices personnalisées disponibles pour LibreOffice Flatpak

Installez une police dans votre dossier de polices utilisateur Linux, redémarrez LibreOffice Flatpak et vérifiez qu'elle apparaît bien dans Writer sans affaiblir le bac à sable de l'application.