Extraire les pages d'un PDF

Extraire les pages d'un PDF et nommer les fichiers résultant avec une donnée contenu dans chaque page.

import os
import pdfplumber
from pypdf import PdfReader, PdfWriter
import re
 
# Le fichier source PDF
pdf_path = "./le gros fichier.pdf"
 
# Dossier de sortie
output_folder = "pages"
os.makedirs(output_folder, exist_ok=True)
 
# Lecture avec pdfplumber pour extraire le texte
with pdfplumber.open(pdf_path) as pdf:
    for i, page in enumerate(pdf.pages):
        text = page.extract_text()
 
        match = re.search(r"Facture\s*:\s*(\w+)", text)
 
        if match:
            nom_fichier = match.group(1)
        else:
            nom_fichier = f"page_{i+1}"  # nom générique si rien trouvé
 
        # Extraire la page avec PyPDF
        reader = PdfReader(pdf_path)
        writer = PdfWriter()
        writer.add_page(reader.pages[i])
 
        # et l’enregistrer
        output_path = os.path.join(output_folder, f"{nom_fichier}.pdf")
        with open(output_path, "wb") as f_out:
            writer.write(f_out)
 
        print(f"Page {i+1} enregistrée sous : {output_path}")