Estrarre dati specifici da PDF

ges

Excel/VBA Expert
Original poster
Amministratore
21 Giugno 2015
31.032
3.000
2.465
Como
2011Mac-365Win
In riferimento a questa discussione https://www.forumexcel.it/forum/threads/estrarre-dati-da-pdf.72275/ propongo un metodo semplice con Python che è più ricco di librerie rispetto a Excel
Python:
import os
import tkinter as tk
from tkinter import filedialog
import fitz
import openpyxl
from tkinter import messagebox

#pip install PyMuPDF
#pip install openpyxl

def apri_cartella():
    root = tk.Tk()
    root.withdraw()
    cartella = filedialog.askdirectory()
    return cartella

def leggi_pdf(pdf_path):
    testo_pdf_per_riga = []
    pdf_document = fitz.open(pdf_path)

    for pagina in pdf_document:
        testo_pagina = pagina.get_text("text")
        righe_pagina = testo_pagina.split('\n')
        testo_pdf_per_riga.extend(righe_pagina)

    pdf_document.close()
    return testo_pdf_per_riga

def scrivi_excel(testo_totale_per_file, excel_path):
    workbook = openpyxl.Workbook()
    sheet = workbook.active

    for nome_file, testo_per_riga in testo_totale_per_file:
        sheet.append([nome_file])
        sheet.append(testo_per_riga[73:79])
        #print(testo_per_riga[73:79])

    workbook.save(excel_path)

def main():
    cartella = apri_cartella()

    if cartella:
        testo_totale_per_file = []

        for nome_file in os.listdir(cartella):
            if nome_file.endswith(".pdf"):
                pdf_path = os.path.join(cartella, nome_file)
                testo_per_riga = leggi_pdf(pdf_path)

                testo_totale_per_file.append((nome_file, testo_per_riga))

        excel_path = os.path.join(cartella, 'Dati estratti.xlsx')
        scrivi_excel(testo_totale_per_file, excel_path)

        #print(f"Testo estratto da tutti i PDF salvato in '{excel_path}'")


        messagebox.showinfo("NOTIFICA", "Dati esportati da PDF in Exce!")
        button = tk.Button(text="Mostra Messaggio")
        button.pack(pady=20)


if __name__ == "__main__":
    main()

Allego programmino in .Exe che fa quello richiesto da V @Vincent2023
Funziona cosi:si mettono tutti i files PDF in una cartella poi si avvia il programmino "PDF_To_ Excel" e con la finestra di dialgolo si seleziona la cartella.
CI si ritroverà con un file excel dentro la cartella in cui c'è per ciascun file PDF nella riga superiore il nome del file e in quella inferiore i dati estratti

 
Ultima modifica:

alfrimpa

VBA Expert
Supermoderatore
18 Dicembre 2015
61.707
5.756
2.445
70
Napoli
Office 365
@Scusa ges @ges ma non vedo alcun file .exe allegato.
 

ges

Excel/VBA Expert
Original poster
Amministratore
21 Giugno 2015
31.032
3.000
2.465
Como
2011Mac-365Win
Hai ragione alfrimpa @alfrimpa non avevo messo il link, ora c'è
 

dodo47

Utente assiduo
Expert
18 Ottobre 2020
4.320
941
245
excel 2016
ciao ges @ges
mi ritrovo un file vuoto....

cari saluti