Dernière mise à jour: 29 janvier 2025

Dans cet article, nous vous guiderons sur comment travailler avec des fichiers PDF en utilisant Python. Pour cela, nous utiliserons la bibliothèque pypdf.
En utilisant la bibliothèque pypdf, nous vous montrerons comment effectuer les opérations suivantes en Python :
- Extraction de texte de PDF
- Rotation des pages de PDF
- Fusion de plusieurs PDF
- Division de PDF en fichiers séparés
- Ajout de filigranes aux pages PDF
Remarque: Cet article couvre de nombreux détails précieux, n’hésitez donc pas à passer aux sections qui vous intéressent le plus ! Le contenu est organisé pour une navigation facile, afin que vous puissiez rapidement vous concentrer sur ce qui vous est le plus pertinent.

Codes d’exemple
Vous pouvez télécharger tout le code d’exemple utilisé dans cet article depuis le lien suivant. Il comprend le code, les fichiers d’entrée et les fichiers de sortie.
Installer pypdf
Pour installer pypdf, exécutez simplement la commande suivante dans votre terminal ou invite de commande :
pip install pypdf
Remarque: La commande ci-dessus est sensible à la casse.
1. Extraction de texte d’un fichier PDF en utilisant Python
Explication du Code
1. Création d’un objet lecteur de PDF
reader = PdfReader(pdf_file)
PdfReader(pdf_file)
charge le fichier PDF dans un objet lecteur.- Cet objet permet d’accéder aux pages et à leur contenu.
2. Boucle à travers les pages
for page_number, page in enumerate(reader.pages, start=1):
reader.pages
renvoie une liste de pages dans le PDF.enumerate(..., start=1)
assigne un numéro de page à partir de 1.
3. Impression du texte extrait
print(f"Page {page_number}:")
print(page.extract_text())
print("-" * 50) # Séparateur pour la lisibilité
page.extract_text()
extrait le contenu texte de la page actuelle.- Le script imprime le texte extrait avec le numéro de page.
"-" * 50
imprime une ligne de séparation (--------------------------------------------------
) pour une meilleure lisibilité.
Fichier PDF d’entrée utilisé dans le code
- Fichier d’entrée : Lien de téléchargement
Sortie du Code
2. Rotation des pages PDF en utilisant Python
Explication du Code
Le code permet essentiellement de faire pivoter la première page de 90° dans le sens horaire et de sauvegarder le PDF modifié sans affecter les autres pages.
1. Importer les classes requises
from pypdf import PdfReader, PdfWriter
PdfReader
: Lit le PDF d’entrée.PdfWriter
: Crée un nouveau PDF avec des modifications.
2. Définir les chemins des fichiers d’entrée et de sortie
input_pdf = "pdf-to-rotate/input.pdf"
output_pdf = "pdf-to-rotate/rotated_output.pdf"
- Le script lit à partir de
input.pdf
et sauvegarde le fichier modifié sous le nom derotated_output.pdf
.
3. Lire le PDF et créer un objet Writer
reader = PdfReader(input_pdf)
writer = PdfWriter()
reader
charge le PDF existant.writer
est utilisé pour stocker les pages modifiées.
4. Faire pivoter la première page de 90 degrés
page = reader.pages[0]
page.rotate(90) # Pivoter de 90 degrés dans le sens horaire
writer.add_page(page)
- Extrait la page 1, la fait pivoter de 90 degrés, et l’ajoute au nouveau PDF.
5. Ajouter les pages restantes sans modifications
for i in range(1, len(reader.pages)):
writer.add_page(reader.pages[i])
- Parcourt les pages restantes et les ajoute telles quelles.
6. Sauvegarder le nouveau PDF
with open(output_pdf, "wb") as file:
writer.write(file)
- Ouvre
rotated_output.pdf
en mode écriture-binaire et enregistre le nouveau PDF.
7. Imprimer la confirmation
print(f"Rotated page saved to {output_pdf}")
- Affiche un message de succès.
Fichier PDF d’entrée utilisé dans le code et sa sortie pivotée
- Fichier PDF d’entrée : Lien de téléchargement
- Fichier PDF Pivoté en Sortie : Lien de téléchargement
Capture d’écran
3. Fusionner des fichiers PDF en utilisant Python
Ce script Python démontre comment fusionner plusieurs fichiers PDF d’un répertoire en un seul PDF en utilisant la bibliothèque PyPDF.
Explication du Code
- Ce script fusionne automatiquement tous les fichiers PDF trouvés dans le répertoire spécifié (
pdfs-to-merge
) en un seul fichier de sortie (merged_output.pdf
). - Il s’assure que le répertoire de sortie existe et ajoute les pages de chaque PDF dans l’ordre où elles sont listées.
- Il génère le fichier final fusionné dans le sous-répertoire
output-dir
.
Détail du Code
1. Importer les bibliothèques
import os
from pypdf import PdfReader, PdfWriter
os
: Utilisé pour interagir avec le système de fichiers, tel que la lecture de répertoires et la gestion des chemins de fichiers.PdfReader
: Lit le contenu d’un fichier PDF.PdfWriter
: Crée et écrit un nouveau fichier PDF.
2. Définir le répertoire et fichier de sortie
directory = "pdfs-to-merge"
output_file = "output-dir/merged_output.pdf"
directory
: Spécifie le dossier où sont stockés les fichiers PDF.output_file
: Définit le chemin et le nom de sortie du PDF fusionné.
3. Créer le répertoire de sortie s’il n’existe pas
os.makedirs(os.path.join(directory, "output-dir"), exist_ok=True)
- Cela s’assure que le répertoire de sortie existe, et s’il n’existe pas, il le crée.
4. Créer un objet PdfWriter
writer = PdfWriter()
writer
est utilisé pour collecter et combiner toutes les pages des PDF.
5. Itérer sur tous les fichiers PDF du répertoire
for file_name in sorted(os.listdir(directory)):
if file_name.endswith(".pdf"):
file_path = os.path.join(directory, file_name)
print(f"Adding: {file_name}")
- Cette boucle passe en revue tous les fichiers dans le répertoire spécifié, en vérifiant les fichiers avec l’extension
.pdf
. Elle utilisesorted()
pour les traiter dans l’ordre alphabétique.
6. Lire chaque PDF et ajouter les pages au Writer
reader = PdfReader(file_path)
writer.append(reader)
- Pour chaque PDF,
PdfReader
lit le fichier, puis toutes les pages de ce PDF sont ajoutées àwriter
.
7. Écrire le PDF fusionné dans un fichier de sortie
output_path = os.path.join(directory, output_file)
with open(output_path, "wb") as output_pdf:
writer.write(output_pdf)
- Après avoir collecté toutes les pages,
writer.write()
écrit le PDF fusionné sur le chemin de sortie spécifié.
8. Imprimer la confirmation
print(f"Merged PDF saved as: {output_path}")
- Imprime un message de succès confirmant l’emplacement du fichier PDF fusionné sauvegardé.
Fichiers PDF d’entrée utilisés dans le code et PDF de sortie fusionné
- Fichiers PDF d’entrée : Lien de téléchargement
- PDF de sortie fusionné : Lien de téléchargement
4. Diviser un PDF en utilisant Python
Explication du Code
Le script Python ci-dessus divise un PDF en pages séparées en utilisant la bibliothèque PyPDF. Il s’assure d’abord que le répertoire de sortie existe, puis lit le fichier PDF d’entrée. Le script parcourt chaque page, crée un nouvel objet PdfWriter, et enregistre chaque page en tant que fichier PDF individuel. Les fichiers de sortie sont nommés séquentiellement (ex. page_1.pdf, page_2.pdf) et stockés dans le dossier output-dir
. Enfin, il imprime un message de confirmation pour chaque fichier créé et notifie lorsque le processus est terminé.
Fichier PDF d’entrée et fichiers de sortie divisés
- Fichier PDF d’entrée : Lien de téléchargement
- Fichiers de sortie divisés : Lien de téléchargement
5. Ajouter un filigrane à un PDF en utilisant Python
Vous pouvez ajouter un filigrane à un PDF en utilisant la bibliothèque PyPDF en superposant un PDF de filigrane sur un PDF existant. Assurez-vous que le PDF de filigrane ne comporte qu’une seule page pour qu’il s’applique correctement à chaque page du PDF principal.
Explication du Code
Le script Python ci-dessus lit un PDF d’entrée, extrait un PDF de filigrane d’une seule page, superpose le filigrane sur chaque page du PDF d’entrée, et sauvegarde le PDF final avec le filigrane.
Détail du Code
Voici une brève explication de chaque partie
1. Importer les classes requises
from pypdf import PdfReader, PdfWriter
PdfReader
est utilisé pour lire les PDF existants.PdfWriter
est utilisé pour créer et écrire un nouveau PDF.
2. Définir les chemins de fichiers
input_pdf = "pdf-to-watermark/input.pdf"
watermark_pdf = "pdf-to-watermark/watermark.pdf"
output_pdf = "pdf-to-watermark/output_with_watermark.pdf"
input_pdf
: Le PDF original auquel le filigrane sera ajouté.watermark_pdf
: Un PDF distinct d’une page servant de filigrane.output_pdf
: Le fichier de sortie qui contiendra les pages filigranées.
3. Lire les PDF
reader = PdfReader(input_pdf)
watermark = PdfReader(watermark_pdf)
reader
: Lit le PDF d’entrée.watermark
: Lit le PDF de filigrane.
4. Créer un objet Writer
writer = PdfWriter()
- Ceci sera utilisé pour créer le PDF final avec filigrane.
5. Extraire la page du filigrane
watermark_page = watermark.pages[0]
- On suppose que le PDF de filigrane comprend uniquement une page, qui est utilisée pour la surimpression sur toutes les pages.
6. Boucle à travers les pages PDF d’entrée & fusion du filigrane
for page in reader.pages:
# Fusionner le filigrane avec la page actuelle
page.merge_page(watermark_page)
# Ajouter la page fusionnée au writer
writer.add_page(page)
- Itère à travers chaque page de
input_pdf
. merge_page(watermark_page)
superpose le filigrane sur la page actuelle.- Ajoute la page modifiée au
writer
.
7. Sauvegarder le PDF avec filigrane
with open(output_pdf, "wb") as output_file:
writer.write(output_file)
- Écrit les pages modifiées dans un nouveau fichier PDF.
8. Imprimer la confirmation
print(f"Watermarked PDF saved as: {output_pdf}")
- Affiche le chemin du fichier de sortie pour confirmation.
Fichier PDF d’entrée, fichier PDF de filigrane, et fichier PDF avec filigrane en sortie
- Fichier PDF d’entrée : Lien de téléchargement
- Fichier PDF de filigrane : Lien de téléchargement
- Fichier PDF avec filigrane en sortie : Lien de téléchargement
Capture d’écran
Conclusion
Dans ce guide, nous avons exploré les opérations PDF essentielles en Python, y compris l’extraction de texte, la rotation des pages, la fusion, la division, et l’ajout de filigranes. Avec ces compétences, vous pouvez maintenant créer votre propre gestionnaire de PDF et automatiser diverses tâches PDF efficacement.