Di tutto un pò sul mondo della tecnologia e non solo!
Di tutto un pò sul mondo della tecnologia e non solo!

Progetto di un bilanciatore applicativo documentale

L’avvio del bilanciatore applicativo documentale in simulazione

Il bilanciatore viene avviato dal seguente codice. In questo e nell’intero flusso è simulata l’apposizione della firma e il recupero dei documenti.

import Bilanciatore 
import Document
import base64
import PyPDF2
import os

def read_key_value_file(file_path):
    key_values = {}
    with open(file_path, 'r') as file:
        lines = file.read().split('|')
        for line in lines:
            key, value = line.strip().split('=')
            key_values[key] = value
    return key_values

def convert_pdf_to_base64(pdf_path):
    with open(pdf_path, "rb") as pdf_file:
        pdf_content = pdf_file.read()
        return base64.b64encode(pdf_content).decode()
        
current_directory = os.getcwd()
for i in range(1, 200):   
    text_file_path = '../ProgettoBilanciatore/TestFiles/chiavi_1.txt'  # Percorso al file di testo con le chiavi
    pdf_file_path = '../ProgettoBilanciatore/TestFiles/certificato_1.pdf'  # Percorso al file PDF
    
    # Lettura del file di testo e conversione del PDF
    pdf_base64 = convert_pdf_to_base64(pdf_file_path)
    key_values = read_key_value_file(text_file_path)

    print('dopo caricamento files....')
    # istanza classe bilanciatore
    bilanciatore = Bilanciatore.BilanciatoreApplicativo()
    # istanza classe Document
    doc = Document.Document(key_values,pdf_base64)
    doc.setDocumentID()
    firme = [('Signer1', 'Pin1'), ('Signer2', 'Pin2')]  # Lista di firme
    bilanciatore.process_document(doc, firme)
    bilanciatore.close()
    

Il codice è abbastanza semplice, in un primo momento vengono definite due funzioni read_key_value_file e convert_pdf_to_base64. La prima per leggere un file di chiavi contenente dei metadati attribuiti al documento pdf caricato. La seconda converte lo stream del file pdf in base64 (v. articolo che spiega il base64).

Successivamente, nella riga ventuno, alla variabile current_directory viene attribuito il valore della directory corrente attraverso la classe os di python e il metodo getcwd().

Per simulare il passaggio di n documenti caricando lo stesso documento in formato pdf ho utilizzato un ciclo for, all’interno del quale ho sviluppato il codice che esegue il bilanciatore applicativo documentale.

All’interno del ciclo for vengono inizialmente valorizzare due variabili text_file_path e pdf_file_path. Alla prima si attribuisce il percorso del file di chiavi e alla seconda il percorso del documento pdf.

Il codice continua con la valorizzazione di altre due variabili pdf_base64 e key_values. Alla prima viene attribuita la conversione del documento pdf da caricare in base64 attraverso l’utilizzo della funzione convert_pdf_to_base64. Alla seconda attraverso la funzione read_key_value_file vengono caricate le chiavi e il rispettivo valore.

Poi, si procede ad istanziare la classe del BilanciatoreApplicativo nell’istanza della variabile bilanciatore. Si continua col istanziare la classe Document passandogli le due variabili key_values e pdf_base64. Nella riga successiva si procede con chiamare il metodo setDocumentID che di fatto attribuisce un ID univoco al documento caricato.

Nelle riga trentasei, alla lista firme si attribuiscono le credenziali fornite dal provider (fiduciario esterno) che applica una o più FEQ.

Nella riga trentasette si chiama il metodo process_document dell’istanza bilanciatore è fondamentale per eseguire il bilanciatore applicativo. Di seguito è descritto questo metodo in modo dettagliato con un diagramma delle attività.
Il codice si chiude chiamando il metodo close dell’istanza bilanciatore che chiude l’accesso al database.

Pagina Successiva | Pagina Precedente

No votes yet.
Please wait...

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

sette + 12 =

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.