Estrai testo da PDF esistenti e crea nuovi documenti PDF da zero, con pypdf e reportlab.
Lavorare con i PDF in Python richiede in genere due strumenti diversi, perché "leggere" e "creare" un PDF sono compiti molto diversi tra loro.
| Libreria | Compito |
|---|---|
| pypdf | Leggere, unire, dividere ed estrarre testo da PDF esistenti |
| reportlab | Creare nuovi PDF da zero: testo, tabelle, immagini, grafici |
from pypdf import PdfReader lettore = PdfReader("documento.pdf") print(len(lettore.pages)) # numero di pagine print(lettore.pages[0].extract_text()) # testo della prima pagina
PdfReader apre un PDF esistente in sola lettura. Ogni pagina è un oggetto da cui puoi estrarre il testo con .extract_text().
pypdf permette di unire più file PDF in uno solo, o di estrarne solo alcune pagine per creare un nuovo file più piccolo.
reportlab lavora "disegnando" ogni elemento a coordinate precise sulla pagina (come un canvas), oppure tramite un sistema di "storia" (Platypus) che dispone automaticamente paragrafi e tabelle in ordine.
In reportlab l'origine (0,0) è in basso a sinistra della pagina, non in alto a sinistra come si potrebbe pensare: è una fonte comune di confusione per chi inizia.
Platypus (il modulo di alto livello di reportlab) permette di costruire documenti complessi con tabelle e paragrafi senza calcolare manualmente ogni coordinata.
Spunta ogni passaggio man mano che lo completi: sbloccherai l'attestato di questa guida al termine.
Esempio per il punto 1
from pypdf import PdfReader lettore = PdfReader("documento.pdf") print(len(lettore.pages))
Esempio per il punto 2
testo = lettore.pages[0].extract_text() print(testo)
Esempio per il punto 3
from reportlab.pdfgen import canvas c = canvas.Canvas("attestato.pdf") c.drawString(100, 750, "Attestato di partecipazione") c.save()
Esempio per il punto 4
from reportlab.platypus import SimpleDocTemplate, Table doc = SimpleDocTemplate("tabella.pdf") dati = [["Nome", "Voto"], ["Anna", "8"], ["Luca", "6"]] tabella = Table(dati) doc.build([tabella])
Tocca ogni termine per vederne la definizione.
Apri un PDF a tua scelta (anche un documento scaricato da internet), conta le pagine ed estrai il testo di ciascuna, salvandolo in un file .txt.
Usa reportlab per creare un PDF con un titolo e una tabella che riassuma 5 argomenti studiati con relativo punteggio del quiz.
Questo codice scrive del testo che risulta invisibile nel PDF: c.drawString(100, -50, "Testo"). Spiega perché una coordinata y negativa posiziona il testo fuori dall'area visibile della pagina, ricordando dove si trova l'origine (0,0) in reportlab.
Completa tutti i 5 passaggi della checklist per sbloccare il tuo attestato in PDF.