Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re
- from PyPDF2 import PdfReader, PdfWriter
- # Definisci l'espressione regolare per il codice fiscale italiano
- cf_regex = r'[A-Z]{6}\d{2}[ABCDEHLMPRST]\d{2}[A-Z]\d{3}[A-Z]'
- # Funzione per estrarre i codici fiscali dal testo
- def trova_codici_fiscali(testo):
- return re.findall(cf_regex, testo)
- # Leggi il PDF
- pdf_path = 'percorso/del/tuo/file.pdf'
- reader = PdfReader(pdf_path)
- # Inizializza una mappa per tracciare le pagine per ogni dipendente
- pagine_per_dipendente = {}
- ultimo_codice_fiscale_trovato = None
- # Estrai il testo da ogni pagina e determina l'appartenenza dei dipendenti
- for numero_pagina in range(len(reader.pages)):
- pagina = reader.pages[numero_pagina]
- testo = pagina.extract_text() if pagina else ""
- codici_trovati = trova_codici_fiscali(testo)
- if codici_trovati:
- # Considera solo il primo codice fiscale trovato per pagina
- codice_fiscale_trovato = codici_trovati[0]
- print(f"Codice fiscale trovato: {codice_fiscale_trovato}")
- # Se รจ un nuovo dipendente, inizia a tracciare le sue pagine
- if codice_fiscale_trovato != ultimo_codice_fiscale_trovato:
- ultimo_codice_fiscale_trovato = codice_fiscale_trovato
- pagine_per_dipendente[codice_fiscale_trovato] = []
- pagine_per_dipendente[ultimo_codice_fiscale_trovato].append(pagina)
- else:
- print(f"Nessun codice fiscale trovato nella pagina {numero_pagina + 1}, potrebbe essere necessario un controllo manuale.")
- # Crea e salva un PDF per ogni dipendente trovato
- for codice_fiscale, pagine in pagine_per_dipendente.items():
- writer = PdfWriter()
- for pagina in pagine:
- writer.add_page(pagina)
- nome_file = f'{codice_fiscale}.pdf'
- with open(nome_file, 'wb') as nuovo_pdf:
- writer.write(nuovo_pdf)
- print(f"File salvato: {nome_file}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement