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
pip install pdfplumber
Estrazione di tabelle usando PDFPlumber
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
pip install reportlab
Creazione di un documento PDF semplice
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
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.
import PyPDF2
Ad esempio, proviamo ad aprire un documento PDF e leggerlo.
# 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".
GO TO FULL VERSION