PowerShell : comment convertir des documents Word en PDF ?
Sommaire
I. Présentation
Prendre un document Word et l'exporter en PDF avant de le transférer par e-mail ou de la partager, c'est une opération classique, voire quotidienne. Pour un ou deux fichiers comme ça, tous les jours, difficile de faire autrement que de le faire manuellement.
Par contre, si l'on vous demande de convertir 50, 100 ou même 1 000 documents Word en PDF, comment allez-vous faire ? Les ouvrir un par un et les exporter, je ne pense pas... Il y a plusieurs manières de faire, des logiciels peuvent vous aider à le faire, mais vous pouvez aussi par PowerShell et ça c'est cool !
En effet, j'ai trouvé le script ConvertWordTo-PDF pour convertir un Word en PDF avec PowerShell et il fonctionne parfaitement ! Je vous invite à le récupérer depuis le lien suivant : ConvertWordTo-PDF - Merci @Patrick Gruenauer pour ce script.
II. Ajouter ConvertWordTo-PDF sur votre PC
Après avoir téléchargé l'archive ZIP, nous pouvons ajouter le script sur le PC en tant que module directement grâce au fichier .psm1 qui est intégré à l'archive. Créez un dossier pour ce module et copiez le fichier dedans, ce qui donne :
C:\Program Files\WindowsPowerShell\Modules\ConvertWordTo-PDF\ConvertWordTo-PDF.psm1
Puisque ce fichier provient d'Internet, il faut le débloquer grâce à cette commande à exécuter en tant qu'administrateur :
Unblock-File "C:\Program Files\WindowsPowerShell\Modules\ConvertWordTo-PDF\ConvertWordTo-PDF.psm1"
Ensuite, on peut importer le module :
Import-Module ConvertWordTo-PDF
Il ne reste plus qu'à voir comment l'utiliser.
III. Convertir Word en PDF avec PowerShell
La commande ConvertWordTo-PDF s'utilise avec deux paramètres :
- SourceFolder : le dossier source qui contient tous les documents Word à convertir
- DestinationFolder : le dossier destination où seront stockés tous les fichiers PDF générés. Ce paramètre est facultatif, s'il n'est pas précisé les PDF seront créés dans le dossier source
Simple à utiliser. Pour convertir tous les documents Word du dossier "C:\TEMP\Word" en PDF dans le dossier "C:\TEMP\PDF", voici la commande :
ConvertWordTo-PDF -SourceFolder "C:\TEMP\WORD\" -DestinationFolder "C:\TEMP\PDF\"
Tous les documents DOCX et DOC de ce dossier seront convertis en PDF.
Pour chaque fichier du dossier, l'opération s'effectue en trois étapes : on ouvre le document, on l'enregistre en PDF grâce à la méthode SaveAs() dans laquelle on spécifie le format de sortie (PDF) et on ferme le document.
$doc = $word.documents.open($f.FullName) $doc.saveas($path,$FormatPDF) $doc.close()
Maintenant, c'est à vous de jouer...