CodeGym /Corsi /Python SELF IT /Altre librerie per lavorare con PDF in Python

Altre librerie per lavorare con PDF in Python

Python SELF IT
Livello 43 , Lezione 1
Disponibile

1. Introduzione a PDFPlumber

Estrazione di tabelle e strutture complesse con PDFPlumber

PDFPlumber è perfetto per estrarre dati da file PDF, specialmente tabelle e strutture complesse, come colonne. Ti permette di riconoscere ed estrarre dati che sarebbe difficile ottenere con PyPDF2.

Installazione di PDFPlumber

Python

pip install pdfplumber

Estrazione di tabelle usando 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)

Questo codice estrae tabelle da ciascuna pagina PDF, il che è utile per gestire report finanziari e analitici dove le tabelle rappresentano dati importanti.

2. Introduzione a ReportLab

Creazione di report PDF con ReportLab

Se vuoi creare un PDF da zero, ad esempio per report o documenti automatizzati, la libreria ReportLab offre possibilità flessibili per costruire PDF con testo, tabelle, immagini e grafici.

Installazione di ReportLab

Python

pip install reportlab

Creazione di un documento PDF semplice

Python

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

# Creazione del PDF
pdf_file = canvas.Canvas("generated_report.pdf", pagesize=A4)
width, height = A4

# Aggiunta di un titolo
pdf_file.setFont("Helvetica-Bold", 16)
pdf_file.drawString(100, height - 100, "Rapporto sulle vendite")

# Aggiunta di testo
pdf_file.setFont("Helvetica", 12)
pdf_file.drawString(100, height - 130, "Questo rapporto contiene i dati di vendita dell'ultimo mese.")

# Salvataggio del PDF
pdf_file.showPage()
pdf_file.save()

Questo codice crea un PDF con un titolo e del testo. Permette anche di aggiungere loghi, immagini e altri elementi di stile.

Creazione di una tabella in PDF con ReportLab

Python

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

# Dati per la tabella
data = [
    ["Mese", "Vendite"],
    ["Gennaio", "200"],
    ["Febbraio", "300"],
    ["Marzo", "250"]
]

# Creazione del PDF con tabella
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),
]))

# Creazione del PDF
elements = [table]
pdf_file.build(elements)

Questo codice crea una tabella e la salva in PDF. Con ReportLab puoi anche aggiungere stili, cambiare colori, dimensioni dei caratteri e formattare il testo.

3. Torniamo a PyPDF2

Perché PyPDF2?

Come sai, i documenti PDF sono praticamente uno standard per ogni tipo di documentazione, dai report ai white paper. Ma quando si tratta di automazione, lavorare con i PDF in Python può essere una bella gatta da pelare. PyPDF2 ti aiuta a uscire da questo pasticcio: ti permette di estrarre testi, unire e dividere pagine e molto altro. E lo fa in modo così semplice e comodo che è come una bella tazza di caffè mattutina per un programmatore, ma invece di eccitarti, ti rilassa!

Facciamo una rapida panoramica delle funzionalità base di PyPDF2, per prepararci a compiti più complessi. Senza una partenza graduale, è facile perdersi.

Importazione e esempio base

La prima cosa da fare è importare la libreria. Come il vecchio e caro `import this`, ma ora farà cose specifiche per te.

Python

import PyPDF2

Ad esempio, proviamo ad aprire un documento PDF e leggerlo.

Python

# Apriamo il file in modalità binaria per la lettura
with open('example.pdf', 'rb') as pdf_file:
    # Creiamo un oggetto PDFReader
    pdf_reader = PyPDF2.PdfReader(pdf_file)
    # Estraiamo il testo dalla prima pagina
    page = pdf_reader.pages[0]
    text = page.extract_text()
    print(text)

Questo codice fa tutto ciò che serve per iniziare: apre un documento PDF, estrae il testo dalla prima pagina e lo visualizza. Semplice e funzionale.

Panoramica delle funzionalità di PyPDF2

PyPDF2 offre molte funzioni per lavorare con i PDF:

  • Estrazione di testo: già vista.
  • Unione di PDF: creare un nuovo documento PDF unendo più file esistenti.
  • Divisione di pagine: separare le pagine necessarie e salvarle in file separati.
  • Aggiunta di annotazioni e commenti: qui si va sul davvero avanzato!

A questo punto dovresti avere un'idea generale di come funziona PyPDF2 e delle sue possibilità. Ovviamente, non si può imparare tutto in una sola lezione, ma passo dopo passo scopriremo cosa può offrire questa libreria.

Feedback e errori comuni

Spesso il codice non funziona subito, e ogni apprendimento si trasforma in una "caccia al bug". L'errore più comune con PyPDF2 è il percorso errato al file. Assicurati che il tuo documento PDF si trovi nella stessa directory del tuo script o specifica il percorso completo. Inoltre, non dimenticare di aprire i file in modalità binaria ('rb'), dato che aiuta a evitare problemi di codifica. Come disse un saggio programmatore, "I bug non sono errori nel tuo codice, sono solo funzionalità inattese".

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