Convertir Docx en PDF en Python

Muhammad Maisam Abbas 22 octobre 2021
  1. Convertir Docx en PDF avec le package pywin32 en Python
  2. Convertir Docx en PDF avec le package docx2pdf en Python
Convertir Docx en PDF 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().

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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