Lettura e modifica di PDF e documenti Word da Python
Questo tutorial ti permetterà di leggere documenti PDF e unire più file PDF in un unico file. Mostrerà anche come leggere e scrivere documenti Word da Python.
PDF è un formato di documento portatile che può contenere testi, immagini, grafici, ecc., ed è diverso dai file di testo semplice. È un file con estensione '.pdf' ed è stato inventato da Adobe. Questo tipo di file è indipendente da qualsiasi piattaforma, come software, hardware e sistemi operativi.
Passaggi per installare il pacchetto:
Devi installare un pacchetto chiamato "pypdf2" che può gestire i file con estensione '.pdf'.
Puoi vedere che il pacchetto 'pypdf2' è installato, come mostrato qui sotto.
Lettura di documenti PDF ed estrazione dei dati
Estrarrai solo il testo dal file PDF, perché PyPDF2 ha dei limiti nell'estrazione di contenuti multimediali. Loghi, immagini, ecc. non possono essere estratti — per seguire questo tutorial devi scaricare il seguente file PDF. Scarica il file PDF
L'istruzione 'import' nel codice sopra importa il modulo PyPDF2. Devi usare 'open('pdfFileName' , 'openingMode')' dove 'pdfFilename' è 'test.pdf' e 'openingMode' è 'rb', cioè sola lettura in formato binario.
PyPDF2 ha un metodo chiamato 'PdfFileReader', che prende in input il nuovo oggetto 'pdfFileObject'. Ora puoi accedere all'attributo 'numPages' di 'pdfFileObject', che restituisce il numero totale di pagine.
L'output sopra è 1. Infatti, come puoi vedere, il file PDF è composto da una sola pagina.
Puoi usare il metodo 'getPage(0)' sull'oggetto pdfReaderObject per ottenere la prima pagina. Il risultato viene quindi memorizzato in 'firstPageObject', dal quale tutto il testo di quella pagina può essere stampato usando il metodo 'extractText()'.
Il codice sopra restituisce tutto il testo dal file PDF. Tuttavia, l'immagine non viene mostrata nel terminale, perché non può essere ottenuta con pyPDF2.
Unire più file PDF in un unico PDF
Unirai due file PDF diversi in un unico file PDF. Il vecchio file PDF è quello su cui hai già lavorato, mentre un nuovo file PDF può essere scaricato dal seguente link: Nuovo file PDF.
Importerai il modulo PdfFileMerger dal pacchetto PyPDF2, che aiuta a unire i file PDF. Viene specificato il 'path', che indica il percorso della cartella in cui si trova il file. Inoltre, i file PDF da unire sono inclusi in 'pdf_files' in un elenco.
Puoi vedere che l'oggetto merger viene creato con l'aiuto di 'PdfFileMerger'. Si esegue un ciclo su ciascun file della lista, unendo i file passando percorso e nome file al metodo 'append'. Infine, si ottiene il risultato finale usando 'merger.write()', che genera un nuovo PDF con il contenuto unito.
L'immagine sopra mostra 'merged.pdf', che contiene il contenuto unito di 'test.pdf' e 'test-1.pdf'.
Documenti Word
I documenti Word hanno l'estensione ".docx" alla fine del nome file. Questi documenti non contengono solo testo come i file di testo semplice, ma sono documenti con formattazione avanzata. Un documento rich text include diverse strutture con dimensioni, allineamenti, colori, immagini, font, ecc. associati.
Ti serve un'applicazione per lavorare con i documenti Word. L'applicazione più diffusa per i sistemi operativi Windows e Mac è Microsoft Word, ma richiede un abbonamento a pagamento. Tuttavia, esiste un'alternativa gratuita come "LibreOffice", un'applicazione per Linux fornita preinstallata. Le applicazioni possono essere scaricate per i sistemi operativi Windows e Mac. In questo tutorial useremo Microsoft Word su Windows.
Passaggi per installare il pacchetto
Devi installare un pacchetto chiamato "python-docx" che può gestire i documenti Word con estensione '.docx'.
Puoi vedere il pacchetto 'python-docx' installato, come mostrato di seguito.
Puoi scrivere il codice nella shell interattiva fornita da Python, ma è preferibile usare un editor di testo. Per la parte di codice di questo tutorial useremo Sublime Text.
Scrivere un documento Word
Come vedi sopra, nel primo rigo viene importato il modulo 'document' dal pacchetto 'docx'. Il codice nella seconda riga crea un nuovo documento Word tramite l'oggetto Document. Il file viene salvato come 'first.docx' usando 'document.save()'.
Aggiungere un'intestazione
Il codice sopra contiene 'Document()' per aprire un nuovo file e 'document.save('addHeader.docx')' per creare un nuovo file .docx modificato. Puoi aggiungere un'intestazione con il metodo 'add_heading('text,' level=number)', che prende il testo dell'intestazione e il livello, che va da 0 a 4.
Il codice sopra produce come output un nuovo file 'addedHeader.docx' in cui il livello 0 crea un titolo con una linea orizzontale sotto il testo, mentre il livello di intestazione 1 è l'intestazione principale. Allo stesso modo, gli altri livelli sono sottotitoli con dimensioni del carattere via via decrescenti.
Aggiungere un paragrafo
Il codice sopra contiene 'Document()' che apre un nuovo file documento e 'document.save('addParagraph.docx')' per creare un nuovo file .docx modificato. Puoi aggiungere il paragrafo con il metodo 'add_paragraph('text,' style='required_style')' che accetta il testo e uno 'style' opzionale, per esempio 'List Number' e 'List Bullet'.
Il codice sopra produce come output un nuovo file 'addedParagraph.docx' in cui c'è un semplice paragrafo nella prima riga. Quindi c'è un'intestazione e sotto un elenco ordinato contenente gli elementi 1 e 2. Di seguito c'è un'altra intestazione con due elementi in un elenco puntato non ordinato.
Aggiungere un'immagine
Il codice sopra contiene 'Document()', che crea un nuovo file documento, e 'document.save('addPicture.docx')' per creare un nuovo file .docx modificato. Puoi aggiungere un'immagine usando 'add_picture()', il cui primo parametro 'cat-1.jpeg' è il percorso dell'immagine del gatto. Larghezza e altezza sono parametri opzionali che di default sono '72 dp', ma qui abbiamo usato 'Inches' per il nostro scopo.
Il codice sopra produce come output un nuovo file 'addedPicture.docx', che contiene un'immagine di un gatto con larghezza e altezza pari a 1,25 pollici.
Leggere un documento Word
Ora leggerai un documento Word di esempio da Python, disponibile qui: Scarica l'esempio.
La prima riga del codice importa Document dal modulo 'docx', usato per passare il file richiesto e creare un oggetto. 'obtainText' è una funzione che riceve il file 'fullText.docx'. Si esegue un ciclo per ogni paragrafo, accessibile con 'document.paragraphs', e lo si inserisce in una lista vuota usando il metodo 'append'. Infine, la funzione restituisce un elenco di paragrafi separati da una nuova riga.
L'output sopra mostra il testo semplice, senza stile, colore, ecc., quindi non è un documento con formattazione avanzata.
Congratulazioni
Congratulazioni, hai finito di leggere questo tutorial.
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.