Convertir plusieurs fichiers Word en PDF en une fois
Pour convertir un dossier entier de documents Word en PDF, la solution gratuite est LibreOffice en ligne de commande : soffice --headless --convert-to pdf *.docx traite tous les fichiers d’un coup. Si Word est installé sous Windows, un script PowerShell ou une macro VBA fait la même chose avec le rendu exact de Word.
Chaque document donne un PDF séparé. Pour obtenir un seul PDF à partir de plusieurs fichiers, voir plutôt fusionner plusieurs Word en un seul PDF.
En bref
- Installez LibreOffice (gratuit) et fermez-le.
- Ouvrez un terminal dans le dossier des documents.
- Lancez
soffice --headless --convert-to pdf --outdir pdf *.docx: les PDF arrivent dans le sous-dossierpdf.
Quelle méthode choisir ?
| Méthode | Systèmes | Coût | Fidélité à Word | Sous-dossiers |
|---|---|---|---|---|
| LibreOffice en ligne de commande | Windows, macOS, Linux | Gratuit | Bonne si les polices sont installées | Avec find ou une boucle |
| PowerShell + Word | Windows | Word requis | Exacte | Oui |
| Macro VBA | Windows (et Mac, à adapter) | Word requis | Exacte | Non, dans cette version |
| Acrobat Pro | Windows, macOS | Abonnement payant | Bonne | Oui |
Notre convertisseur en ligne traite un fichier à la fois : pratique pour deux ou trois documents, pas pour un dossier de cinquante.
LibreOffice : une commande pour tout le dossier
Sous Linux et macOS, placez-vous dans le dossier des documents puis lancez :
# Linux
soffice --headless --convert-to pdf --outdir pdf *.docx
# macOS
/Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to pdf --outdir pdf *.docx
Sous Windows, dans l’invite de commandes, LibreOffice interprète lui-même le caractère * :
"C:\Program Files\LibreOffice\program\soffice.exe" --headless --convert-to pdf --outdir C:\Docs\PDF C:\Docs\*.docx
Ajoutez *.doc à la suite pour inclure les anciens fichiers Word 97-2003. Pour parcourir aussi les sous-dossiers sous Linux ou macOS, en laissant chaque PDF à côté de son document :
find . -name '*.docx' -execdir soffice --headless --convert-to pdf {} \;
Sur Mac, remplacez soffice par le chemin complet ci-dessus. Les options (PDF/A, pages, balises) et les pièges de la commande sont détaillés dans Word en PDF en ligne de commande.
Fermez LibreOffice avant de lancer la commande : si une fenêtre est ouverte, la conversion peut échouer sans message. Et un PDF déjà présent sous le même nom est remplacé.
Windows : script PowerShell avec Word
Ce script ouvre chaque document du dossier (et de ses sous-dossiers) dans Word, invisible, et enregistre le PDF à côté de l’original. Modifiez la première ligne, enregistrez le tout dans un fichier convertir.ps1, puis lancez-le avec powershell -ExecutionPolicy Bypass -File .\convertir.ps1.
$dossier = 'C:\Users\Vous\Documents\A convertir'
$word = New-Object -ComObject Word.Application
$word.Visible = $false
$word.DisplayAlerts = 0 # wdAlertsNone
try {
Get-ChildItem -Path $dossier -Include *.docx, *.doc -Recurse |
Where-Object { $_.Name -notlike '~$*' } | # ignore les fichiers temporaires de Word
ForEach-Object {
$pdf = [System.IO.Path]::ChangeExtension($_.FullName, '.pdf')
try {
# ReadOnly = $true ; mot de passe factice : un fichier protege echoue au lieu de bloquer
$doc = $word.Documents.Open($_.FullName, $false, $true, $false, 'x')
$doc.ExportAsFixedFormat($pdf, 17) # 17 = wdExportFormatPDF
$doc.Close($false)
Write-Host "OK : $pdf"
} catch {
Write-Warning "Echec : $pdf"
}
}
} finally {
$word.Quit()
}
Le rendu est celui de Word, au caractère près. Pour ajouter des signets ou produire un PDF/A, les paramètres supplémentaires d’ExportAsFixedFormat sont expliqués dans la section PowerShell du guide de la ligne de commande, cité plus haut. Attention : si un dossier contient à la fois rapport.doc et rapport.docx, le second PDF remplace le premier.
Macro VBA dans Word
Sans PowerShell, une macro fait le même travail depuis Word. Appuyez sur Alt + F11, choisissez Insertion › Module, collez le code, modifiez le chemin du dossier, puis lancez la macro avec F5.
Sub ConvertirDossierEnPDF()
Dim dossier As String, fichier As String
Dim noms As New Collection, nom As Variant
Dim doc As Document
dossier = "C:\Users\Vous\Documents\A convertir\" ' terminer par \
' 1. Lister les fichiers .docx du dossier
fichier = Dir(dossier & "*.docx")
Do While fichier <> ""
If Left(fichier, 2) <> "~$" Then noms.Add fichier
fichier = Dir()
Loop
' 2. Convertir chaque fichier en PDF, a cote de l'original
For Each nom In noms
Set doc = Documents.Open(FileName:=dossier & nom, ReadOnly:=True, Visible:=False)
doc.ExportAsFixedFormat _
OutputFileName:=dossier & Left(nom, InStrRev(nom, ".")) & "pdf", _
ExportFormat:=wdExportFormatPDF
doc.Close SaveChanges:=wdDoNotSaveChanges
Next nom
End Sub
La macro liste d’abord les fichiers, puis les convertit : c’est plus sûr que d’enchaîner Dir et l’ouverture des documents dans une même boucle. Le paramètre CreateBookmarks:=wdExportCreateHeadingBookmarks ajouté à ExportAsFixedFormat crée des signets à partir des titres.
Adobe Acrobat Pro
Acrobat Pro (payant) sait créer un PDF par fichier à partir d’une sélection de documents ou d’un dossier : dans l’outil Créer un PDF, cherchez l’option Plusieurs fichiers, puis Créer plusieurs fichiers PDF. L’emplacement exact de cette option varie selon la version et l’interface d’Acrobat. Si vous n’avez pas déjà l’abonnement, les méthodes gratuites ci-dessus font aussi bien. Voir Word en PDF avec Adobe Acrobat.
Problèmes courants et solutions
Le script s’arrête ou WINWORD.EXE reste ouvert
Un document ouvre une boîte de dialogue invisible (fichier corrompu, conversion demandée). Fermez Word dans le Gestionnaire des tâches (Ctrl + Maj + Échap), retirez le fichier en cause et relancez.
Certains PDF ont une mise en page différente
Avec LibreOffice, c’est presque toujours une police manquante sur la machine. Installez les polices utilisées ou passez par le script Word. Voir polices différentes dans le PDF.
Il faut un PDF par destinataire à partir d’un publipostage
Ce n’est pas une conversion par lot classique : le guide publipostage Word en PDF individuels explique comment faire.
Seulement deux ou trois documents ? Convertissez-les un par un dans le navigateur, sans rien installer ni envoyer.
Convertir un document