PyPDF2 : Traitement PDF en Python

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

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()                    

Recommendations