Advertisement
Davide1505

Untitled

Mar 27th, 2024
340
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.86 KB | None | 0 0
  1. import re
  2. from PyPDF2 import PdfReader, PdfWriter
  3.  
  4. # Definisci l'espressione regolare per il codice fiscale italiano
  5. cf_regex = r'[A-Z]{6}\d{2}[ABCDEHLMPRST]\d{2}[A-Z]\d{3}[A-Z]'
  6.  
  7. # Funzione per estrarre i codici fiscali dal testo
  8. def trova_codici_fiscali(testo):
  9.     return re.findall(cf_regex, testo)
  10.  
  11. # Leggi il PDF
  12. pdf_path = 'percorso/del/tuo/file.pdf'
  13. reader = PdfReader(pdf_path)
  14.  
  15. # Inizializza una mappa per tracciare le pagine per ogni dipendente
  16. pagine_per_dipendente = {}
  17. ultimo_codice_fiscale_trovato = None
  18.  
  19. # Estrai il testo da ogni pagina e determina l'appartenenza dei dipendenti
  20. for numero_pagina in range(len(reader.pages)):
  21.     pagina = reader.pages[numero_pagina]
  22.     testo = pagina.extract_text() if pagina else ""
  23.     codici_trovati = trova_codici_fiscali(testo)
  24.    
  25.     if codici_trovati:
  26.         # Considera solo il primo codice fiscale trovato per pagina
  27.         codice_fiscale_trovato = codici_trovati[0]
  28.         print(f"Codice fiscale trovato: {codice_fiscale_trovato}")
  29.        
  30.         # Se รจ un nuovo dipendente, inizia a tracciare le sue pagine
  31.         if codice_fiscale_trovato != ultimo_codice_fiscale_trovato:
  32.             ultimo_codice_fiscale_trovato = codice_fiscale_trovato
  33.             pagine_per_dipendente[codice_fiscale_trovato] = []
  34.        
  35.         pagine_per_dipendente[ultimo_codice_fiscale_trovato].append(pagina)
  36.     else:
  37.         print(f"Nessun codice fiscale trovato nella pagina {numero_pagina + 1}, potrebbe essere necessario un controllo manuale.")
  38.  
  39. # Crea e salva un PDF per ogni dipendente trovato
  40. for codice_fiscale, pagine in pagine_per_dipendente.items():
  41.     writer = PdfWriter()
  42.     for pagina in pagine:
  43.         writer.add_page(pagina)
  44.    
  45.     nome_file = f'{codice_fiscale}.pdf'
  46.     with open(nome_file, 'wb') as nuovo_pdf:
  47.         writer.write(nuovo_pdf)
  48.     print(f"File salvato: {nome_file}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement