Sommaire
Information
Préambule sur la conversion de plusieurs Word en PDF
La conversion de fichiers Word en PDF est une tâche fréquente dans le monde professionnel et personnel. Que ce soit pour l'archivage, le partage de documents non modifiables, ou pour répondre à des exigences administratives, le format PDF est devenu un standard incontournable.
Cependant, Microsoft Word n'intègre pas de fonction pour convertir automatiquement plusieurs documents par lot ; ainsi convertir manuellement plusieurs fichiers peut vite devenir fastidieux. C'est là qu'intervient mon script VBScript, qui automatise la conversion de tous les fichiers Word d'un dossier et de ses sous-dossiers, en fichiers PDF à l'aide de Microsoft Word.
Vidéo illustrative via YouTube
Présentation et fonctionnement de l'outil de conversion de PDF
Mon outil est écrit en VBScript et il utilise Microsoft Word pour ouvrir et convertir plusieurs fichiers Word en fichiers au format PDF.
Pour utiliser cet outil, vous devez disposer de :
Ce logiciel permet donc de convertir des documents par lots au format PDF.
Vous pouvez ainsi convertir des dizaines ou des centaines de fichiers Word en une seule opération.
Il prend en charge des sous-dossiers, c'est à dire que vous pouvez inclure ou exclure les sous-dossiers dans la recherche des fichiers à convertir.
Vous pouvez également spécifier quelles extensions de fichiers doivent être traitées (doc, docx, odt, otf, rtf, etc.).
Chaque fichier converti est consigné dans un fichier conversion_log.txt, avec la date, l'heure et le statut de conversion (succès ou échec).
Comme à l'accoutumé je vous partage le code source de mon logiciel ; je l'ai empacté dans une interface HTA ce qui le rend plus conviviale et simple à utiliser.
<html>
<head>
<title>Conversion Par Lot de Fichiers vers PDF</title>
<hta:application
applicationname="WordToPDF"
border="dialog"
caption="yes"
maximizebutton="yes"
minimizebutton="yes"
sysmenu="yes"
scroll="yes"
singleinstance="yes"
resizable="yes" />
<style>
body { font-family: sans-serif; padding: 20px; }
p { display: block; margin-top: 20px; }
label { display: block; margin-top: 20px; }
input[type="text"] { width: 300px; }
button { display: block; margin-top: 20px; }
#status { margin-top: 20px; }
.droite { text-align: right; margin-right: 20px; }
#source, #destination { display: none; }
</style>
</head>
<body onload="resizeWindow()">
<h2>Conversion Par Lot de Fichiers vers PDF</h2>
<p>Convertissez facilement plusieurs documents texte en fichiers PDF en une seule opération. Sélectionnez simplement votre dossier source, celui de destination, et laissez l'outil faire le travail pour vous.</p>
<label>Dossier source où se situent les fichiers à convertir :
<input type="text" id="source" readonly>
<button onclick="ParcourirDossier('source')">Parcourir</button>
</label>
<label>
<input type="checkbox" id="recurse"> Inclure les sous-dossiers
</label>
<label>Dossier de destination où seront enregistrés les fichiers PDF :
<input type="text" id="destination" readonly>
<button onclick="ParcourirDossier('destination')">Parcourir</button>
</label>
<label>Extensions de fichier à convertir (ex: rtf,doc,docx,odt,odf) :
<input type="text" id="extensions" value="rtf,doc,docx,odt,odf">
</label>
<button onclick="DemarrerConversion()">Démarrer la conversion</button>
<div id="status">Statut : En attente de conversion...</div>
<p class="droite">Antoine - 1FORMATIK.com</p>
<script language="VBScript">
Sub ParcourirDossier(champ)
Dim shell, folder
Set shell = CreateObject("Shell.Application")
Set folder = shell.BrowseForFolder(0, "Choisissez un dossier", 0, 0)
If Not folder Is Nothing Then
document.getElementById(champ).value = folder.Self.Path
End If
End Sub
Sub DemarrerConversion()
Dim fso, source, dest, extensions, recurse, files, fileList
Dim status, compteur, total, word, doc, ext, logFile, logPath
Set fso = CreateObject("Scripting.FileSystemObject")
Set status = document.getElementById("status")
source = document.getElementById("source").value
dest = document.getElementById("destination").value
extensions = Split(LCase(document.getElementById("extensions").value), ",")
recurse = document.getElementById("recurse").checked
If source = "" Or dest = "" Then
MsgBox "Veuillez sélectionner les dossiers source et destination.", 48
Exit Sub
End If
Set fileList = CreateObject("Scripting.Dictionary")
ListerFichiers source, extensions, recurse, fileList
total = fileList.Count
If total = 0 Then
MsgBox "Aucun fichier trouvé.", 48
Exit Sub
End If
logPath = dest & "\conversion_log.txt"
Set logFile = fso.OpenTextFile(logPath, 8, True)
Set word = CreateObject("Word.Application")
word.Visible = False
compteur = 0
For Each fichier In fileList.Keys
compteur = compteur + 1
On Error Resume Next
Set doc = word.Documents.Open(fichier, False, True)
If Err.Number = 0 Then
doc.ExportAsFixedFormat dest & "\" & fso.GetBaseName(fichier) & ".pdf", 17
doc.Close False
status.innerText = "Converti : " & fichier
logFile.WriteLine Now & " - " & fichier & " - Succès"
Else
status.innerText = "Échec : " & fichier
logFile.WriteLine Now & " - " & fichier & " - Échec"
End If
On Error GoTo 0
Next
word.Quit
logFile.WriteLine Now & " - Conversion terminée."
logFile.Close
status.innerText = "Conversion terminée."
If MsgBox("Merci d’avoir utilisé cet outil !" & vbCrLf & _
"Souhaitez-vous faire un don pour soutenir le projet ?", _
vbYesNo + vbQuestion, "Soutenir le projet ?") = vbYes Then
CreateObject("WScript.Shell").Run "https://www.paypal.com/donate/?hosted_button_id=D3JZKQBXE6YKC"
End If
End Sub
Sub ListerFichiers(path, extList, recurse, dict)
Dim fso, dossier, f, subf
Set fso = CreateObject("Scripting.FileSystemObject")
Set dossier = fso.GetFolder(path)
For Each f In dossier.Files
If IsInArray(LCase(fso.GetExtensionName(f.Name)), extList) Then
dict.Add f.Path, True
End If
Next
If recurse Then
For Each subf In dossier.SubFolders
ListerFichiers subf.Path, extList, recurse, dict
Next
End If
End Sub
Function IsInArray(value, arr)
Dim i
For i = 0 To UBound(arr)
If Trim(LCase(arr(i))) = value Then
IsInArray = True
Exit Function
End If
Next
IsInArray = False
End Function
Sub resizeWindow()
window.resizeTo 1000, 750
End Sub
</script>
</body>
</html>
Je vous explique dans la vidéo ci-avant comment faire fonctionner ce code, voici par ailleurs un résumé :
Ouvrez le Bloc-notes puis collez le code ci-dessus. Enregistrez ensuite le fichier sous le nom ConvertisseurPDF.hta. Double-cliquez sur ce fichier pour le lancer.
Vous devez ensuite choisir les dossiers source et de destination et ajouter si nécessaire des extensions à traiter. Cochez la case si vous voulez inclure les sous-dossiers ; et enfin cliquez sur le bouton pour lancer la conversion.
Avis de Confidentialité et d'Avertissement d'Utilisation
Ce logiciel est conçu dans le but de convertir plusieurs fichier Word au format PDF. Cependant, veuillez noter les points suivants avant d'utiliser cet utilitaire :
Téléchargement du logiciel pour convertir plusieurs Word en PDF
Cliquez sur le lien ci-dessous pour télécharger le fichier archive au format ZIP.
Il contient un fichier :
Une fois le fichier ZIP ouvert, glissez le fichier HTA sur votre bureau (ou ailleurs), double cliquez sur le fichier ConvertisseurPDF.hta.
Vous devez avoir pris connaissance des risques encourus et accepter la clause de non responsabilité ci-avant pour activer le téléchargement.
Ce contenu vous a-t-il été utile ?
Autres publications dans la catégorie <pdf>
Publication | Date | Lien |
---|---|---|
Convertir plusieurs Word en PDF avec Word et Windows | 2025-05-13 |