Fattura elettronica, come visualizzarla con python

fattura elettronica

La fatturazione elettronica ormai ha sostituito la normale fattura cartacea. Il problema è che per visualizzarla bisogna convertirla in un formato più a portata di umano in quanto il formato originale è xml, un linguaggio simile all’html, abbastanza incasinato da leggere a occhio.

Ci sono diversi modi per visualizzare, stampare, convertire in pdf una fattura xml. Quello che preferisco io si chiama a38, un tool a riga di comando scritto in python, quindi multipiattaforma e inoltre gratis, che ci permette di processare molti file in un colpo solo.

L’installazione è molto semplice, soprattutto su Linux e Mac Osx, ovviamente dovete avere gia installato python (su Linux sicuramente è già così, anche su Mac Osx). Vi pasta digitare il comando pip3 install a38. Nient’altro. Su windows invece dovete utilizzare una distro linux che trovate sullo store di Microsoft come qualsiasi altro software, in modo da abilitare il TERMINALE UNIX anche in windows (non quella ciofeca di powershell o cmd).

Inoltre per abilitare il supporto alla conversione in pdf dovrete installare anche wkhtmltopdf col solito pip3 install wkhtmltopdf e pip3 install lxml. Ultimo ma non meno importante è il download dello schema di fattura che trovate su assosoftware.it.

Adesso possiamo utilizzare a38tool, quindi dal terminale digitiamo:

a38tool pdf -f FatturaOrdinaria.xsl -o fattura.pdf fattura.xml

In questo caso “FatturaOrdinaria.xsl” è il foglio di stile recuperato su assosoftware.it, ”fattura.pdf” è il nome della fattura risultato della conversione, ”fattura.xml” invece è la fattura da convertire.

La potenza di questo tool si apprezza quando abbiamo a che fare con più fatture, se in una cartella abbiamo ad esempio 100 file xml da trasformare in pdf basta digitare:

for i in *.xml; do a38tool pdf -f FatturaOrdinaria.xsl -o $i.pdf $i;done

Tutti i file fattura elettronica xml saranno convertiti in pdf in un colpo solo!

Ps: Il tool funziona anche su iPad

https://github.com/Truelite/python-a38