come da oggetto mi chiedevo se qualcuno qui si fosse posto il problema di riuscire con qualche tool fatto in casa, possibilmente usando qualche comando da shell o creandosi uno script, a convertire le fatture elettroniche che arrivano in formato XML o P7M, in un formato umanamente leggibile tipo PDF.
Ho visto che ci sono anche programmi già pronti, e tra l'altro personalmente ho a che fare con una casella su aruba che mette a disposizione la funzionalità "visualizza fattura", però potrebbe ugualmente tornare utile avere un tool auto-prodotto o quasi, magari in caso di conversione in blocco di N fatture... E in ogni caso, sempre meglio essere in grado di convertire autonomamente questi files.
Ho buttato giù questo script:
Codice: Seleziona tutto
#!/bin/bash
XML_INPUT=$1
PDF_OUT=$XML_INPUT.pdf
HTML=$(tempfile).html
STYLE=FoglioStileAssoSoftware.xsl
xsltproc $STYLE $XML_INPUT > $HTML
wkhtmltopdf --minimum-font-size 18 $HTML $PDF_OUT
rm $HTML
Per leggerla occorre un foglio di stile da applicare all'XML-fattura di partenza in grado di formattarlo in modo leggibile.
Il tool xslproc sembra fare proprio questo. Gli si da in pasto un foglio di stile XSL e il file XML della fattura e lui produce un file HTML leggibile attraverso un normale browser.
Volendo in uscita un PDF stampabile occorre un passaggio ulteriore sfruttando un altro tool che converte il file HTML in PDF.
Per lo scopo ho trovato wkhtmltopdf, dal quale si può comodamente settare anche il font minimo in uscita (nel mio caso utilissimo per ingrandire il carattere del documento, altrimenti un po' striminzito).
Come foglio di stile ho usato quello messo a disposizione da assosoftware:
Codice: Seleziona tutto
# wget http://www.assosoftware.it/allegati/assoinvoice/FoglioStileAssoSoftware.zip
# unzip FoglioStileAssoSoftware.zip
Meglio di quello che si trova sul sito:
https://www.fatturapa.gov.it/export/fat ... it/a-3.htm
Per testare la cosa ho usato questa fattura di esempio:
https://www.fatturapa.gov.it/export/fat ... _FPR02.xml
Insomma il tutto sembra proprio funzionare.
Devo ancora fare una ricerca per gestire il formato firmato P7M, ma credo che si trovi qualche altro tool da coinvolgere nello script per lo scopo.
Invece ho notato un dettaglio che non mi garba: il PDF finale non presenta la tabella che si crea perfettamente centrata orizzontalmente.
Domanda per voi: come si potrebbe ottenere questa centratura?
Occorre modificare il foglio di stile di partenza?
Oppure si può modificare in fase di applicazione del foglio di stile xslproc (chiedo questo perchè anche l'HTML intermedio mi pare venga fuori non centrato)
Oppure ancora si può modificare in fase di conversione da HTML a PDF, con qualche opzione di wkhtmltopdf?
Grazie in anticipo!
Spero che lo spunto sia di utilità anche per altri che si sono posti la domanda...