Convertir Docx en PDF en Python
-
Convertir Docx en PDF avec le package
pywin32
en Python -
Convertir Docx en PDF avec le package
docx2pdf
en Python
Ce tutoriel discutera des méthodes pour convertir un fichier docx en un fichier pdf en Python.
Convertir Docx en PDF avec le package pywin32
en Python
Le package pywin32
est généralement utilisé pour créer et initialiser des objets COM et utiliser les services Windows en Python. Comme il s’agit d’un package externe, nous devons installer pywin32
avant de l’utiliser. La commande pour installer pywin32
est donnée ci-dessous.
pip install pywin32
Nous pouvons utiliser l’application Microsoft Word avec ce package pour ouvrir le fichier docx et l’enregistrer en tant que fichier pdf. L’exemple de code suivant nous montre comment convertir un fichier docx en fichier pdf avec le package pywin32
.
import os
import win32com.client
wdFormatPDF = 17
inputFile = os.path.abspath("document.docx")
outputFile = os.path.abspath("document.pdf")
word = win32com.client.Dispatch("Word.Application")
doc = word.Documents.Open(inputFile)
doc.SaveAs(outputFile, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
Nous avons converti le document.docx
en document.pdf
avec la bibliothèque win32com.client
dans le code ci-dessus. Nous avons ouvert le fichier docx avec doc = word.Documents.Open(inputFile)
et l’avons enregistré en tant que fichier pdf avec doc.SaveAs(outputFile, FileFormat=wdFormatPDF)
. Finalement, nous avons fermé le document ouvert avec la fonction doc.Close()
et quitté Microsoft Word avec la fonction word.Quit()
. Notez que le fichier de sortie doit déjà être créé pour que ce code fonctionne correctement. Cela signifie que nous devons créer manuellement un fichier nommé document.pdf
avant d’exécuter le code ci-dessus. Ce processus peut également être automatisé à l’aide de la gestion des fichiers en Python. L’extrait de code suivant montre comment nous pouvons automatiser davantage l’ensemble de ce processus.
import os
import win32com.client
wdFormatPDF = 17
inputFile = os.path.abspath("document.docx")
outputFile = os.path.abspath("document.pdf")
file = open(outputFile, "w")
file.close()
word = win32com.client.Dispatch("Word.Application")
doc = word.Documents.Open(inputFile)
doc.SaveAs(outputFile, FileFormat=wdFormatPDF)
doc.Close()
word.Quit()
Dans le code ci-dessus, nous créons le fichier de sortie avec file = open(outputFile, "w")
avant d’ouvrir Microsoft Word avec la bibliothèque win32com.client
.
Convertir Docx en PDF avec le package docx2pdf
en Python
La méthode pywin32
fonctionne très bien et nous donne beaucoup de contrôle sur les moindres détails. Le seul inconvénient est que nous devons écrire beaucoup de code pour cela. Si nous devons convertir rapidement un fichier docx en fichier pdf sans trop nous soucier des détails de bas niveau, nous pouvons utiliser le package docx2pdf
en Python. Le package docx2pdf
nous fournit des fonctions simples qui prennent les noms de fichiers et prennent en charge toutes les conversions de bas niveau décrites dans la section précédente. Le docx2pdf
est également un package externe. La commande pour installer le package docx2pdf
est donnée ci-dessous.
pip install docx2pdf
L’exemple de code suivant nous montre comment convertir un fichier docx en fichier pdf avec le package docx2pdf
.
from docx2pdf import convert
inputFile = "document.docx"
outputFile = "document2.pdf"
convert(inputFile, outputFile)
Nous avons converti document.docx
en document.pdf
avec la fonction convert()
du package docx2pdf
dans le code ci-dessus. Le seul inconvénient de ce code est que nous devons encore créer le fichier de sortie avant d’exécuter ce code. Nous pouvons automatiser ce processus comme nous l’avons fait dans la section précédente en utilisant la gestion des fichiers.
from docx2pdf import convert
inputFile = "document.docx"
outputFile = "document2.pdf"
file = open(outputFile, "w")
file.close()
convert(inputFile, outputFile)
Dans le code ci-dessus, nous créons le fichier de sortie avec file = open(outputFile, "w")
avant d’appeler la fonction convert()
.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn