Manipuler des fichiers PDF en Python : guide complet de la bibliothèque PyPDF2
Le format PDF est l'un des plus utilisés pour les documents électroniques. Cependant, le manipuler (fusionner, diviser, chiffrer ou extraire du texte) nécessite des outils fiables. En Python, l'une des bibliothèques les plus populaires et robustes pour travailler avec les PDF est PyPDF2.
PyPDF2 permet aux développeurs de lire, modifier et créer des fichiers PDF, mais aussi d'accéder aux métadonnées, de gérer les pages, d'ajouter une protection et même d'incorporer des filigranes. C'est un outil puissant aussi bien pour l'automatisation de la gestion documentaire que pour l'intégration avec d'autres services.
Qu'est-ce que PyPDF2 ?
PyPDF2 est une bibliothèque Python conçue pour manipuler les fichiers PDF. Développée comme une version améliorée de la bibliothèque originale PyPDF, elle offre une API de haut niveau pour lire, écrire et modifier des documents PDF sans avoir à comprendre la structure interne du format PDF.
Fonctionnalités principales de la bibliothèque
- Lecture et extraction de texte depuis des fichiers PDF
- Fusion de plusieurs documents PDF
- Division d'un PDF en pages individuelles
- Ajout de filigranes et superposition de pages
- Chiffrement et déchiffrement de fichiers PDF
- Gestion des métadonnées des documents
- Rotation et redimensionnement des pages
- Gestion des signets et de la table des matières
Installation de PyPDF2
L'installation de la bibliothèque se fait via pip :
pip install PyPDF2
Pour une stabilité optimale, il est recommandé d'installer également les dépendances supplémentaires :
pip install PyPDF2[crypto]
Classes et composants principaux
PdfReader
La classe PdfReader est utilisée pour lire les fichiers PDF. Elle donne accès aux pages, aux métadonnées et à d'autres informations du document.
PdfWriter
La classe PdfWriter sert à créer de nouveaux fichiers PDF ou à modifier des fichiers existants. Elle permet d'ajouter des pages, d'appliquer un chiffrement et de modifier les métadonnées.
PdfMerger
La classe PdfMerger est spécialisée dans la fusion de plusieurs fichiers PDF en un seul document, avec la possibilité de configurer l'ordre des pages.
Opérations de base avec les PDF
Lire des fichiers PDF
from PyPDF2 import PdfReader
# Chargement du fichier PDF
lecteur = PdfReader("exemple.pdf")
# Obtention du nombre de pages
print(f"Nombre de pages : {len(lecteur.pages)}")
# Extraction du texte de la première page
premiere_page = lecteur.pages[0]
texte = premiere_page.extract_text()
print(texte)
Extraire le texte de toutes les pages
from PyPDF2 import PdfReader
lecteur = PdfReader("exemple.pdf")
texte_complet = ""
for num_page, page in enumerate(lecteur.pages):
texte = page.extract_text()
texte_complet += f"--- Page {num_page + 1} ---\n{texte}\n\n"
print(texte_complet)
Vérifier les informations du document
from PyPDF2 import PdfReader
lecteur = PdfReader("exemple.pdf")
# Vérification du chiffrement
if lecteur.is_encrypted:
print("Le fichier est chiffré")
else:
print("Le fichier n'est pas chiffré")
# Obtention des dimensions de la première page
page = lecteur.pages[0]
print(f"Dimensions de la page : {page.mediabox}")
print(f"Rotation : {page.rotation} degrés")
Fusionner des fichiers PDF
Fusion simple
from PyPDF2 import PdfMerger
fusionneur = PdfMerger()
# Ajout des fichiers
fusionneur.append("fichier1.pdf")
fusionneur.append("fichier2.pdf")
fusionneur.append("fichier3.pdf")
# Sauvegarde du résultat
fusionneur.write("document_fusionne.pdf")
fusionneur.close()
Fusion avec sélection de pages
from PyPDF2 import PdfMerger
fusionneur = PdfMerger()