Fattura elettronica convertire in html
Benvenuti nella pagina Wiki di Simone Giustetti.
Lingue: English - Italiano
Convertire una Fattura Elettronica in un File HTML Leggibile
Sono ormai alcuni anni che in Italia è stata introdotta la fatturazione elettronica e che è stato imposto ai contribuenti, sia organizzazioni che artigiani che liberi professionisti, il formato digitale per gestire l'aspetto fiscale di tutte le transazioni commerciali. Con la sua usuale magnanimità, il legislatore ha imposto, concedendo piena libertà agli utilizzatori finali di reperire quanto necessario per mettersi in regola. Il formato adottato per lo scambio dei file, un tracciato codificato in linguaggio XML, risulta alquanto scomodo per la lettura da parte di un essere umano ed è pertanto consigliabile dotarsi di programmi per compilare le fatture da spedire e leggere quelle ricevute.
La Agenzia delle Entrate fornisce un programma gratuito per PC per compilare le fatture che, con un po' di fatica, è possibile far funzionare su Linux. Per quanto riguarda la visualizzazione delle fatture ricevute via PEC o scaricate dallo SDI esistono solo programmi messi a disposizione a titolo gratuito da enti terzi; ad esempio:
I miei problemi con i programmi citati sono:
- Non viene messo a disposizione il codice sorgente, ma solo file binari. Non è pertanto possibile correggere eventuali errori del software o personalizzarlo per adattarlo al proprio ciclo di lavoro;
- Non viene fornito alcun supporto per l'installazione oppure la risoluzione di eventuali problemi;
- Non riesco a farli funzionare su Linux.
Il secondo dei due programmi citati è fornito esclusivamente per la piattaforma Windows. In rete ho trovato testimonianze di utenti Linux che affermano sia possibile eseguirlo tramite WINE. Ho eseguito alcuni test, ma sono riuscito solo ad installare ed avviare il programma. Ogni volta che trascino un documento elettronico nell'area preposta della schermata principale, il programma si blocca indefinitamente, occupando molte risorse computazionali senza produrre risultati evidenti.
Il primo programma menzionato nell'elenco dispone sia di una versione per piattaforma MicroSoft, che Apple e persino Linux. Ringrazio gli sviluppatori per la considerazione dimostrata per chi usa piattaforme alternative. Anche in questo caso però non sono riuscito a far funzionare l'applicazione. Il programma scritto in Java richiede che sia installata la versione 8 della macchina virtuale Java fornita da Oracle. Come molti altri utenti Linux da anni mi rivolgo ad altri fornitori per la JVM da installare sulle mie macchine onde evitare ogni contatto con Oracle e le sue licenze di distribuzione. Ho fatto una eccezione ed installato una macchina virtuale dotata di JVM 8 di Oracle appositamente, ma ancora una volta non sono riuscito ad andare oltre ad installazione ed avvio del programma.
In ultima analisi, tenuto anche conto del fatto che ricevo poche fatture elettroniche dai fornitori, mi irrita non poco dover installare, imparare ad usare ed aggiornare periodicamente un programma avente il solo scopo di formattare e rendere leggibili gli sporadici documenti che ricevo durante l'anno. Non ho mai preso in considerazione i molti servizi di conversione reperibili in rete ritenendoli una fonte di spam. Non so perchè, ma le promesse di confidenzialità cozzano sempre con il mio scetticismo e con il centinaio di e-mail che intasano quotidianamente la cassetta postale.
Ho bisogno di visualizzare poche fatture elettroniche ogni anno e non desidero sprecare tempo e risorse per installare / imparare / amministrare un programma per uno scopo che ritengo banale. Mi sono dedicato alla ricerca di una soluzione alternativa e, dopo aver spulciato in rete ed aver studiato il formato XML per i file, sono giunto alla conclusione che un programma sia di fatto superfluo. L'unica cosa realmente indispensabile è un foglio di stile per formattare in maniera leggibile i file inviati dal servizio di interscambio. La conversione può essere eseguita con i soli strumenti a riga di comando disponibili per qualsiasi distribuzione Linux. Fortunatamente AssoSoftware fornisce separatamente al proprio programma un foglio di stile per uso esterno. Reperito il un archivio contenente il file apposito, la conversione delle fatture diventa una operazione banale, eseguibile da qualsiasi utente in una manciata di minuti grazie alla versatile ed eterna riga di comando.
Conversione di File XML
Un foglio di stile è un file scritto nel linguaggio XSLT (eXtensible Stylesheet Language Transformations): un linguaggio utilizzato in informatica per trasformare un file XML (eXtensible Markup Language) in un altro documento ad esempio una pagina HTML visualizzabile su qualsiasi browser web. Il file contiene un insieme di modelli da applicare agli elementi di un foglio XML per formattarli secondo le regole impostate. Un foglio di stile può essere applicato ad un documento utilizzando il comando xsltproc che fa parte della libreria libxslt inclusa tra i pacchetti ufficiali di Slackware e di moltissime distribuzioni Linux.
Il comando è utilizzabile da qualsiasi utente, sia amministratore che standard. La sintassi è:
xsltproc <percorso del foglio di stile>/<file>.xslt <percorso della fattura elettronica>/<file_1>.xml -o ./<file_2>.html Ove: <file> è il nome del file "foglio di stile" contenente le regole di formattazione / trasformazione. <file_1> è il nome del file contenente la fattura elettronica. -o Opzione che impone di creare un file. Omettendola il risultato della trasformazione verrà stampato a video come una sequenza di marcatori HTML. <file_2> è il nome del file ottenuto dalla conversione della fattura in una pagina web.
Per semplicità si potrebbe usare lo stesso nome per <file_1> e <file_2>, ma bisogna fare attenzione a non sovrascrivere accidentalmente il file originale.
Supponendo di usare il foglio di stile scaricato dal sito di AssoSoftware e di posizionare lo stesso e la fattura nella directory /tmp, i comandi di trasformazione assumerebbero la forma:
cd /tmp xsltproc ./FoglioStileAssoSoftware.xsl ./IT0XXXXXX07022023j_02Jd8.xml -o ./IT0XXXXXX07022023j_02Jd8.html
Il file IT0XXXXXX07022023j_02Jd8.html ottenuto consiste in una pagina web pura, esente da fogli CSS e JavaScript, che può essere aperta con un browser leggero, sicuro e veloce come Dillo:
Il documento potrebbe essere convertito usando un foglio di stile diverso da quello dell'esempio. Chiunque conosca il linguaggio XML può creare il proprio insieme personalizzato di regole di formattazione. Essendo pigro, ho fatto ricorso a quanto reperito in rete, ma nessuno vi obbliga a fare altrettanto.
Conversione di File Firmato P7M
Capita che il documento elettronico ricevuto sia firmato digitalmente come evidenziato dall'estensione p7m del file e dal fatto che lo stesso sia cifrato e risulti pertanto illeggibile e sia impossibile la conversione. Anche in questo caso è possibile operare tramite riga di comando, con gli strumenti messi a disposizione dalla propria distribuzione Linux ed un po' di materia grigia. L'operazione dovrà essere eseguita in due passi consecutivi:
- Estrazione della fattura elettronica in formato XML dall'archivio cifrato ricevuto;
- Conversione del file XML in una pagina HTML.
Estrazione della Fattura Elettronica
Per gestire gli archivi cifrati in Linux è possibile far ricorso agli strumenti inclusi nel pacchetto openssl. La sintassi del comando sarà:
openssl smime -verify -noverify -in <percorso dell'archivio firmato>/<file_1>.xml.p7m -inform DER -out <percorso della fattura elettronica>/<file_2>.xml Ove: <file_1> è il nome dell'archivio cifrato contenente la fattura firmata. <file_2> è il nome del file contenente la fattura elettronica.
Supponendo che sia l'archivio che la fattura debbano risiedere nella cartella /tmp ad esempio la riga di comando diventerebbe:
cd /tmp openssl smime -verify -noverify -in ./IT0XXXXXX07022023j_02Jd8.xml.p7m -inform DER -out ./IT0XXXXXX07022023j_02Jd8.xml
Anche in questo caso bisognerà fare attenzione a non sovrascrivere accidentalmente il file di origine.
Una volta ottenuto il documento in formato XML si proceda con le istruzioni descritte nel paragrafo precedente per eseguire la conversione in formato HTML.
CONCLUSIONI
Nel corso del presente articolo sono state illustrate due procedure per convertire documenti elettronici in pagine HTML leggibili da un essere umano. Sono stati presi in considerazione il tracciato XML utilizzato per la fatturazione elettronica ed il corrispondente formato su cui venga applicata la firma digitale. Per eseguire la conversione è necessario impiegare un foglio di stile. Chiunque può scrivere il proprio insieme di regole, ma in rete è, reperibile un file già pronto, messo a disposizione gratuitamente dalle anime buone di AssoSoftware. Le procedure di conversione non richiedono l'installazione di software o librerie specifiche, ma si basano esclusivamente sui comandi Linux.
Per commenti, consigli, domande inviate una e-mail all'indirizzo studiosg [chiocciola] giustetti [punto] net.
Link esterni
- AssoInvoice: Programma gratuito per visualizzare le fatture elettroniche
- Foglio di Stile distribuito gratutamente da Assoftware (Aggiornamento del 10 Marzo 2025)
- Sito italiano dedicato a Slackware
- Home page di Slackware (En)
- Slackware Linux per piattaforma ARM (En)
Lingue: English - Italiano