Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2013
    residenza
    Padova
    Messaggi
    9

    [Python] Lettura PDF con split page e rinomina file

    Ciao a tutti,
    chiedo un supporto per una parte mancante di uno script fatto in Python utilizzando il modulo PyPDF2 molto comodo.

    Ho provato a fare la stessa cosa in PHP, ma molto più difficile e non ne sono venuto a campo.

    Spiego la necessità: il mio ufficio personale riceve dalla società che ci fa le buste paga un file unico in PDF con tutti i cedolini dei dipententi.
    L'impiegata ad oggi non fa altro che stampare tutto il malloppone del PDF e suddivide i fogli per consegnarli a mano ad ogni interessato.

    Trovo che per un'azienda sia oneroso e non pratico un lavoro del genere, per cui ho pensato di splittare tutte le pagine del PDF ( e fin qui ci sono riuscito) ma devo leggere almeno il nome nell'intestazione di ogni pagina creata.

    Se riesco ad identificare almeno il nome mi permetterebbe di creare un secondo step in cui sposto i file nelle cartelle di rete di ogni utente ed ho il prodotto finito.

    Addirittura potrei creare delle mail e mandarle in automatico.

    La prima parte molto semplice in PYTHON è:

    codice:
    # pdf_splitting.py
    
    from PyPDF2 import PdfFileReader, PdfFileWriter
    
    
    def split(path, name_of_split):
        pdf = PdfFileReader(path)
        for page in range(pdf.getNumPages()):
            pdf_writer = PdfFileWriter()
            pdf_writer.addPage(pdf.getPage(page))
    
    
            output = f'{name_of_split}{page}.pdf'
            with open(output, 'wb') as output_pdf:
                pdf_writer.write(output_pdf)
    
    
    if __name__ == '__main__':
        path = 'prova.pdf'
        split(path, 'jupyter_page')
    Ho anche il codice per fare la lettura del contenuto:

    codice:
    from PyPDF2 import PdfFileReader
    
    def estraiTesto(path, pagina):
        with open(path, 'rb') as file:
            pdf = PdfFileReader(file)
            page = pdf.getPage(pagina)
            testo = page.extractText()
    
    
            print(page)
            print(testo)
    
    filePdf = '/var/www/html/PDF/Giugno2019.pdf'
    getInfos(filePdf)
    estraiTesto(filePdf, 1)
    estraiTesto(filePdf, 2)
    Essendo dei moduli fissi avrei modo di capire in quale posizione sia il nome del dipendente, ma non ho idea di come recepirlo.

    Qualche spunto?

    Grazie.

  2. #2
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,176
    Non sono espertissimo, ma mi pare che i pdf abbiano una strutta codificata e che contengano dei “tag” tramite i quali si possono individuare posizioni nel documento che contengono del testo

    Potresti provare a cercare qualche parser o un convertitore che tiri fuori la struttura in modo che sia leggibile

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2019 vBulletin Solutions, Inc. All rights reserved.