CodeGym /Cours Java /Python SELF FR /Autres bibliothèques pour travailler avec des PDF en Pyth...

Autres bibliothèques pour travailler avec des PDF en Python

Python SELF FR
Niveau 43 , Leçon 1
Disponible

1. Introduction à PDFPlumber

Extraction de tableaux et structures complexes avec PDFPlumber

PDFPlumber est parfait pour extraire des données à partir de PDF, en particulier des tableaux et des structures complexes comme les colonnes. Il permet de reconnaître et d'extraire des données difficiles à obtenir avec PyPDF2.

Installation de PDFPlumber

Python

pip install pdfplumber

Extraction de tableaux avec PDFPlumber

Python

import pdfplumber

with pdfplumber.open("sample_with_table.pdf") as pdf:
    for page in pdf.pages:
        table = page.extract_table()
        if table:
            for row in table:
                print(row)

Ce code extrait un tableau de chaque page PDF, ce qui est utile pour traiter des rapports financiers et analytiques, où les tableaux représentent des données clés.

2. Introduction à ReportLab

Création de rapports PDF avec ReportLab

Si tu veux créer un PDF à partir de zéro, par exemple pour des rapports ou des documents automatisés, la bibliothèque ReportLab propose des options flexibles pour construire des PDF avec du texte, des tableaux, des images et des graphiques.

Installation de ReportLab

Python

pip install reportlab

Créer un document PDF simple

Python

from reportlab.lib.pagesizes import A4
from reportlab.pdfgen import canvas

# Création du PDF
pdf_file = canvas.Canvas("generated_report.pdf", pagesize=A4)
width, height = A4

# Ajout d'un titre
pdf_file.setFont("Helvetica-Bold", 16)
pdf_file.drawString(100, height - 100, "Rapport des ventes")

# Ajout de texte
pdf_file.setFont("Helvetica", 12)
pdf_file.drawString(100, height - 130, "Ce rapport contient des données sur les ventes du mois dernier.")

# Sauvegarde du PDF
pdf_file.showPage()
pdf_file.save()

Ce code crée un PDF avec un titre et du texte. Il permet aussi d'ajouter des logos, des images et d'autres éléments de mise en page.

Créer un tableau dans un PDF avec ReportLab

Python

from reportlab.lib.pagesizes import A4
from reportlab.lib import colors
from reportlab.platypus import SimpleDocTemplate, Table, TableStyle

# Données pour le tableau
data = [
    ["Mois", "Ventes"],
    ["Janvier", "200"],
    ["Février", "300"],
    ["Mars", "250"]
]

# Création du PDF avec tableau
pdf_file = SimpleDocTemplate("sales_report.pdf", pagesize=A4)
table = Table(data)
table.setStyle(TableStyle([
    ('BACKGROUND', (0, 0), (-1, 0), colors.grey),
    ('TEXTCOLOR', (0, 0), (-1, 0), colors.whitesmoke),
    ('ALIGN', (0, 0), (-1, -1), 'CENTER'),
    ('FONTNAME', (0, 0), (-1, 0), 'Helvetica-Bold'),
    ('BOTTOMPADDING', (0, 0), (-1, 0), 12),
    ('BACKGROUND', (0, 1), (-1, -1), colors.beige),
]))

# Construction du PDF
elements = [table]
pdf_file.build(elements)

Ce code crée un tableau et le sauvegarde dans un PDF. Avec ReportLab, tu peux aussi ajouter des styles, changer les couleurs, tailles de police et formater le texte.

3. Retour à PyPDF2

Pourquoi PyPDF2 ?

Comme tu le sais, les documents PDF sont pratiquement un standard pour tous types de documentation, des rapports aux livres blancs. Mais quand il s'agit d'automatisation, travailler avec des PDF en Python peut devenir une vraie galère. PyPDF2 te sort de ce pétrin: il permet d'extraire du texte, de combiner et de séparer des pages, et plus encore. Et c'est un pur plaisir à utiliser. Bref, c'est comme une bonne tasse de café pour un dev, sauf que ça calme au lieu d'exciter !

Passons rapidement sur les fonctionnalités de base que propose PyPDF2. Ça te préparera pour des tâches plus complexes, parce que sans commencer doucement, on peut vite se perdre.

Importation et exemple de base

La première chose à faire est d'importer la bibliothèque. Comme un bon vieux `import this`, mais ici elle va exécuter des tâches spécifiques.

Python

import PyPDF2

Prenons un exemple simple : ouvrons un document PDF et lisons-le.

Python

# Ouvrir un fichier en mode binaire pour lecture
with open('example.pdf', 'rb') as pdf_file:
    # Créer un objet PDFReader
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    # Extraire le texte de la première page
    page = pdf_reader.pages[0]
    text = page.extract_text()
    print(text)

Ce code fait tout ce qu'il faut pour un début : il ouvre un document PDF, extrait le texte de la première page et l'affiche. Simple et efficace.

Aperçu des fonctionnalités de PyPDF2

PyPDF2 offre une foule de fonctionnalités pour travailler avec des PDF :

  • Extraction de texte : déjà vu.
  • Fusionner des PDF : créer un nouveau document PDF en combinant plusieurs existants.
  • Diviser des pages : extraire les pages nécessaires et les sauvegarder dans des fichiers séparés.
  • Ajouter des annotations et des commentaires : là, on passe carrément au niveau supérieur !

À ce stade, tu devrais avoir une idée générale de comment fonctionne PyPDF2 et des possibilités qu'elle offre. Bien sûr, tout apprendre en une seule session est irréaliste, mais nous allons explorer petit à petit ce que cette bibliothèque peut proposer.

Retour d'expérience et erreurs typiques

Souvent, le code ne fonctionne pas du premier coup, et chaque apprentissage devient une "chasse au bug". La cause la plus fréquente d'erreur avec PyPDF2 est un chemin de fichier incorrect. Assure-toi que ton document PDF est dans le même répertoire que ton script, ou indique un chemin complet. De plus, n'oublie pas d'ouvrir les fichiers en mode binaire ('rb'), car cela évite les problèmes d'encodage. Comme le disait un vieux programmeur sage, "Les bugs ne sont pas des erreurs dans ton code, ce sont juste des fonctionnalités inattendues".

Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION