Paolo Guccini

"Impossibile" non è mai la risposta giusta

Rinomina File Pdf in base al suo testo:
Istruzioni per impostare le regole

Come impostare nuove regole per ridenominare altri documenti PDF

Il software utilizza un file, detto file delle regole, che contiene le impostazioni per estrarre i valori da un PDF e rinominarlo con essi.

Esso è rintracciabile utilizzando il menu
Regole >> Seleziona il file regole da utilizzare
e il suo nome di default è regole.pdfren.xml.

Suggerimento: prima di creare nuove regole, eseguire una copia del file delle regole e agire su tale copia, lasciando inalterato l'originale, perchè:

  • In caso di problemi si può agevolmente eliminare la copia e il file originale rimane sempre fruibile
  • In caso di aggiornamenti (mensili) il file delle regole viene sovrascritto e le regole create dall'utente non saranno più disponibili, ma non perse, in quanto la precedente versione viene salvata.

Il file delle regole

Il file delle regole è realizzato impiegando due sintassi estremamente note nel mondo dell'informatica per semplificare l'utilizzo di questo software:

  • l' XML per l'organizzazione del file delle regole (link alla sua presentazione).
  • le espressioni regolari per la implementazione e realizzazione delle regole di estrazione del testo dal documento PDF; per comodità, questi sono link a:

La struttura del file: l'elemento <gruppi>

Il file ha l'elemento principale di nome <gruppi>: esso contiene i seguenti elementi:

  • <default>: contiene le impostazioni standard per ogni gruppo di regole, ed è utile per chi scrive regole per molti documenti e desidera creare una uniformità nella ridenominazione dei file e delle cartelle, senza dover intervenire su ogni gruppo di regole
  • <gruppo>: contiene le regole e le informazioni per gestione di ogni singolo tipo di documento PDF.
    Questo è l'elemento su cui agire per creare nuove regole.

Le regole per acquisire e ridenominare i PDF

Tipicamente, ogni tipo di documento PDF ha una sua strutturazione del testo al proprio interno.

Il <gruppo> contiene tutte le regole che si dovranno applicare al singolo tipo di documento.
Esse servono ad estrarre i valori che saranno utilizzati per ridenominare il file PDF

L'elemento <gruppo> contiene i seguenti attributi che hanno lo scopo di aiutare l'utilizzatore a riconoscerlo più agevolmente:

  • versione: indica il numero di versione che gli viene attribuito;
  • notaBreve: breve nota informativa o descrittiva;
  • DocEmittente: indicazione di chi ha emesso il documento
  • DocTipo: indicazione sul tipo di documento; si può utilizzare qualunque valore si desidera
  • partitaIva: contiene il codice della partita iva di chi ha emesso il documento. Serve solo per facilitare le ricerche.
  • nome: nome dell'azienda che emesso il documento. informativa ad uso di chi sviluppa la <regola>.

Sempre nell'elemento <gruppo> , trovano posto altri elementi:

  • <identificanteRE>: contiene una espressione regolare che il software utilizza per definire se il gruppo di regole è applicabile al PDF in analisi;
  • <modelli> : permette di indicare:
    • <cartellaRE>: la cartella ove salvare il PDF ridenominato;
      è anche possibile utilizzare dei segnaposto per definire cartelle diverse in base ad alcuni valori del PDF: per esempio, per collocare i PDF in cartelle distinte in base l'anno di emissione del documento, la sua tipologia, l'azienda che lo ha emesso, eccetera.
      Se omesso, il file ridenominato rimarrà nella cartella di origine.
    • <rinominaFileRE>: definisce come deve essere strutturato il nuovo nome del file, utilizzando:
      • parti fisse, per esempio i caratteri .PDF per l'estensione del file
      • parti variabili acquiste dal testo del PDF, dette segnaposto che definiscono dove collocare i valori

      Per esempio:
      Verificato <DocData> numero <DocNum>.PDF
      ove le parti fisse, che verranno sempre inserire nel nome del file sono le parole Verificato e numero nonchè l'estensione .PDF mentre <DocData> e <DocNum> saranno sostituiti dai valori provenienti dal testo del file, ottenuti con gli elementi <regola> aventi lo stesso nome.

  • <regole>: è un elemento che contiene uno o più elementi <regola>, ognuno dei quali provvederà ad estrarre un valore che popolerà il segnaposto collocato in <cartellaRE> ed in <rinominaFileRE>.

L'elemento <identificanteRE>

Viene utilizzato per verificare se il gruppo di regole è applicabile al documento PDF in esame.
In altre parole, il software applica tutti gli elementi <identificanteRE> presenti nel file delle regole fino a quando non trova il gruppo che soddisfa la espressione regolare indicata in <identificanteRE>.

Suggerimento: l'Espressione Regolare dovrebbe ricercare un dato o un valore specifico per l'azienda che ha emesso il documento per evitare delle ridenominazioni indesiderate.
Esempio: la partita iva o il codice fiscale.

Quando il software trova il gruppo la cui <identificanteRE> è applicabile al documento, procede con l'estrazione dei valori utilizzando quanto indicato in <regole>.

Il segnaposto

Il segnaposto è un nome che viene inserito nel modello di ridenominazione (vedi <modelli>) e che verrà sostituito, durante l'elaborazione, con il valore estratto mediante l'applicazione delle varie regole contenute negli elementi <regola>

Il nome del segnaposto deve coincidere con il nome della <regola> (ovvero l'attributo nome dell'elemento <regola>) che estrae il dato desiderato.

All'interno del <gruppo>, Il segnaposto è utilizzabile più volte; per esempio per definire la cartella di destinazione (<cartellaRE> e il nome del file (<ridenominaFileRE>).

Inoltre il segnalibro può essere utilizzato anche in <templateCartella> e <templateRinominaFile> presenti in <default>

<modelli>

Definisce la struttura del nuovo nome da assegnare al file ridenominato, ed eventualmente la cartella di destinazione.
Contiene le sezioni:

  • <cartellaRE>: serve per impostare il nome della cartella ove salvare il PDF;
  • <rinominaFileRE>: serve per impostare il nuovo nome del file;

Per entrambi, il nuovo nome può contenere uno o più segnaposti che verranno sostituiti dai valori estratti applicando le varie <regola>.

Esempio di elemento <rinominaFileRE>:

<rinominaFileRE> <DocEmittente> <DocTipo> <DocData> <DocNum> <Euro>.pdf</rinominaFileRE>

Qui l'elemento <rinominaFileRE> contiene i seguenti riferimenti:

  • <DocEmittente>
  • <DocTipo>
  • <DocData>
  • <DocNum>
  • <Euro>

Essi sono dei "segnaposto" che verranno sostituiti dal valore acquisito mediante:

Utilizzando <templateCartella> e <templateRinominaFileE> (presenti in <default>), si può omettere l'uso di <cartellaRE> e di <rinominaFileRE> (presenti in <modelli> ), perchè il software, in assenza degli elementi di ridenominazione interni al gruppo (<modelli>), farà riferimento a quelli <default>.

L'elemento <regole>

Questo elemento serve unicamente a contenere tutti gli elementi <regola>.

<regola>: suoi attributi interni

In tale elementp sono presenti le seguenti indicazioni:

  • nome: nome assegnato alla <regola>, richiamato in <rinominaFileRE> per sostiuirvi il segnaposto (avente lo stesso nome) con il valore estratto dalla <regola>
  • origine:
    • "testo" per indicare che il valore deve essere acquisito dal testo del PDF
    • "proprietà" (con o senza accento) per  acquisire le proprietà scritte ne file PDF al momento della sua creazione ("CreationDate", "Creator" , "Producer" , "Title" , "ModDate")
  • acquisire: permette di indicare il comportamento da tenere qualora la <regola> non trovi corrispondenza nel testo del documento
    • si: non procedere alla rinomina del file;
    • no: il valore non è importante ai fini della ridenominazione, quindi esso verrà semplicemente omesso dal nuovo nome

<regola>: suoi elementi

All'interno dell'elemento <regola> vi sono i seguenti elementi:

  • <estrattoreValore>: è una espressione regolare il cui compito è individuare il valore ed estrarlo per sostituire il corrispendente segnaposto in <rinominaFileRE> ed in <cartellaRE>.
  • <valoreSostituzioni>: opzionalmente esso può essere presente per consentire di modificare i caratteri che compongono il valore estratto.
    Esso è costituito da uno o più elementi di nome <sostituire> (Vedi esempi).

Esempio di estrazione date

Si desidera avere la data con il carattere '-' (trattino o meno) come separatore nelle date (al posto della barra '/' che costituisce un carattere non ammesso nei nomi di file o cartelle) dalla fattura di Sky:
\nFattura (?'DocNum'\d*)\nData emissione fattura (?'DocDataGG'\d{2})/(?'DocDataMM'\d{2})/(?'DocDataAAAA'\d{4})\n

Tale espressione regolare ricerca la questa sequenza di testo nel documento PDF:

  • \n la fine di una riga
  • Fattura il testo esatto
  • un singolo carattere spazio
  • (?'DocNum'\d*) una serie di cifre (\d) di quantita imprecisata (*), il cui valore verrà denominato DocNum
  • \n la fine di una riga
  • Data emissione fattura il testo esatto
  • un singolo carattere spazio
  • (?'DocDataGG'\d{2}) due numeri a cui assegna nome DocDataGG
  • / il carattere barra
  • (?'DocDataMM'\d{2}) due numeri a cui assegna nome DocDataMM
  • / il carattere barra
  • (?'DocDataAAAA'\d{4}) quattro numeri a cui assegna nome DocDataAAAA
  • \n la fine di una riga

ed estre i valori a cui sono stati assegnati i nomi: DocNum, DocDataGG, DocDataMM, DocDataAAAA

L'elemento <regola> contiene l'attributo acquisire: esso indica quali valori estratti da espressione regolare dovranno essere utilizzati da estrattoreValore.

Avendo acquisito la data nei suoi tre elementi costitutivi (giorno , mese anno), la si può gestire come segue:

  • per ottenerla in stile 31-12-1999:
    acquisire="${DocDataGG}-${DocDataMM}-${DocDataAAAA}"
  • per ottenerla in stile 1999-12-31:
    acquisire="${DocDataAAAA}-${DocDataMM}-${DocDataGG}"

Da notare che l'attributo acquisire:

  • contiene i nomi indicati nella espressione regolare di estrattoreValore, ma preceduti dal carattere dollaro ($) e singolarmente racchiusi fra parentesi graffe.
  • viene utilizzato il carattere 'trattino' per separare i tre valori, ma si può utilizzare qualunque carattere ammesso per i nomi di file.
    Esso non fa parte del nome indicato nella espressione regolare di estrattoreValore, quindi va collocato all'esterno delle parentesi graffe

Esempio di modifica dei valori estratti con <valoreSostituzioni>

Talvolta i valori estratti dal testo del PDF devono essere modificati prima di venire utilizzati nella ridenominazione del file; per esempio, se una data contiene il nome del mese anzichè il suo numero ('dicembre' anzichè 12) e si vuole avere i file con date solo numeriche.
Allo scopo, l'elemento <estrattoreValore> può contenere uno o più elementi <valoreSostituzioni> gestire tali modifiche.

L'elemento <valoreSostituzioni> contiene le singole indicazioni di trasformazione negli elementi <sostituire>.
Ecco alcuni esempi:

Sostituire il separatore dei decimali negli importi, passando dal punto alla virgola:

<valoreSostituzioni>
    <sostuire da="." a=","/>
</valoreSostituzioni>

Sostituire il separatore nelle date , passando dalla barra al trattino:

<valoreSostituzioni>
    <sostuire da="/" a="-"/>
</valoreSostituzioni>

Sostituire il nome del mese, passando al suo equivalente numerico:

<valoreSostituzioni>
    <sostuire da="Gen" a="01"/>
    <sostuire da="Feb" a="02"/>
    <sostuire da="Mar" a="03"/>
    <sostuire da="Apr" a="04"/>
    <sostuire da="Mag" a="05"/>
    <sostuire da="Gig" a="06"/>
    <sostuire da="Lug" a="07"/>
    <sostuire da="Ago" a="08"/>
    <sostuire da="Set" a="09"/>
    <sostuire da="Ott" a="10"/>
    <sostuire da="Nov" a="11"/>
    <sostuire da="Dic" a="12"/>
</valoreSostituzioni>

Eliminare un carattere, senza sostituzione:

<valoreSostituzioni>
    <sostuire da="." a=""/>
</valoreSostituzioni>

Da notare l'assenza di spazi alli'interno delle doppie virgolete in a=""