AutoIt
AutoIt
Extract PDF Invoice from FatturaElettronica XML
See more XML Examples
Demonstrates how to extract a PDF attachment from an XML invoice (fattura elettronica) -- ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2Chilkat AutoIt Downloads
Local $bSuccess = False
; The XML invoice is shown at the bottom of this example.
$oXml = ObjCreate("Chilkat.Xml")
$bSuccess = $oXml.LoadXmlFile("qa_data/xml/fatture_invoice.xml")
If ($bSuccess <> True) Then
ConsoleWrite($oXml.LastErrorText & @CRLF)
Exit
EndIf
; Get the Base64 PDF content.
$oSb = ObjCreate("Chilkat.StringBuilder")
$bSuccess = $oXml.GetChildContentSb("FatturaElettronicaBody|Allegati|Attachment",$oSb)
If ($bSuccess <> True) Then
ConsoleWrite($oXml.LastErrorText & @CRLF)
Exit
EndIf
; Decode the base64
$oBd = ObjCreate("Chilkat.BinData")
$bSuccess = $oBd.AppendEncodedSb($oSb,"base64")
; Save to a PDF file.
$bSuccess = $oBd.WriteFile("qa_output/fattura.pdf")
; This is the XML invoice loaded from fatture_invoice.xml
; It is populated with junk information.
; <?xml version="1.0" encoding="utf-8"?>
; <nr1:FatturaElettronica versione="FPR12" xmlns:nr1="http://ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2">
; <FatturaElettronicaHeader>
; <DatiTrasmissione>
; <IdTrasmittente>
; <IdPaese>IT</IdPaese>
; <IdCodice>9999999999</IdCodice>
; </IdTrasmittente>
; <ProgressivoInvio>01E99</ProgressivoInvio>
; <FormatoTrasmissione>FPR99</FormatoTrasmissione>
; <CodiceDestinatario>0000000</CodiceDestinatario>
; <PECDestinatario>fatture.elettroniche@pec.something.it</PECDestinatario>
; </DatiTrasmissione>
; <CedentePrestatore>
; <DatiAnagrafici>
; <IdFiscaleIVA>
; <IdPaese>IT</IdPaese>
; <IdCodice>9999999999</IdCodice>
; </IdFiscaleIVA>
; <CodiceFiscale>9999999999</CodiceFiscale>
; <Anagrafica>
; <Denominazione>Chilkat S.p.A.</Denominazione>
; </Anagrafica>
; <RegimeFiscale>RF01</RegimeFiscale>
; </DatiAnagrafici>
; <Sede>
; <Indirizzo>Via Xyzabcde, 99/2</Indirizzo>
; <CAP>40127</CAP>
; <Comune>Bologna</Comune>
; <Provincia>BO</Provincia>
; <Nazione>IT</Nazione>
; </Sede>
; <IscrizioneREA>
; <Ufficio>BO</Ufficio>
; <NumeroREA>9999999</NumeroREA>
; <CapitaleSociale>9999999999.00</CapitaleSociale>
; <SocioUnico>SM</SocioUnico>
; <StatoLiquidazione>LN</StatoLiquidazione>
; </IscrizioneREA>
; </CedentePrestatore>
; <CessionarioCommittente>
; <DatiAnagrafici>
; <IdFiscaleIVA>
; <IdPaese>IT</IdPaese>
; <IdCodice>9999999999</IdCodice>
; </IdFiscaleIVA>
; <Anagrafica>
; <Denominazione>GRUPPO ABCDEF SRL</Denominazione>
; </Anagrafica>
; </DatiAnagrafici>
; <Sede>
; <Indirizzo>VIALE ABCDEF 1</Indirizzo>
; <CAP>73010</CAP>
; <Comune>XYZ</Comune>
; <Provincia>LE</Provincia>
; <Nazione>IT</Nazione>
; </Sede>
; </CessionarioCommittente>
; </FatturaElettronicaHeader>
; <FatturaElettronicaBody>
; <DatiGenerali>
; <DatiGeneraliDocumento>
; <TipoDocumento>ABC04</TipoDocumento>
; <Divisa>EUR</Divisa>
; <Data>2018-12-31</Data>
; <Numero>9999999999</Numero>
; <ImportoTotaleDocumento>354.71</ImportoTotaleDocumento>
; <Causale>RIFERIMENTO TICKET 999999</Causale>
; <Causale>FATTURA NR. 9999999999 DEL 30.09.2018</Causale>
; <Causale>DIFFERENZA PREZZO</Causale>
; <Causale>RIF. FORN. ABCDEF clam</Causale>
; <Causale>RIF. CLIENTE: ABCDEF</Causale>
; <Causale>XYZ - ABCDEF</Causale>
; <Causale>Assolve gli obblighi di ... in L.27/2012</Causale>
; <Causale>Contributo ambientale ABCDEF assolto</Causale>
; </DatiGeneraliDocumento>
; <DatiFattureCollegate>
; <IdDocumento>9999999999</IdDocumento>
; <Data>2018-09-30</Data>
; </DatiFattureCollegate>
; </DatiGenerali>
; <DatiBeniServizi>
; <DettaglioLinee>
; <NumeroLinea>1</NumeroLinea>
; <CodiceArticolo>
; <CodiceTipo>Codice Art. ABC</CodiceTipo>
; <CodiceValore>9999999999</CodiceValore>
; </CodiceArticolo>
; <CodiceArticolo>
; <CodiceTipo>EAN</CodiceTipo>
; <CodiceValore>9999999999</CodiceValore>
; </CodiceArticolo>
; <Descrizione>ABC 123 XY</Descrizione>
; <Quantita>1.00</Quantita>
; <UnitaMisura>NR</UnitaMisura>
; <PrezzoUnitario>72.57000000</PrezzoUnitario>
; <PrezzoTotale>72.57</PrezzoTotale>
; <AliquotaIVA>4.00</AliquotaIVA>
; <AltriDatiGestionali>
; <TipoDato>DP</TipoDato>
; <RiferimentoTesto>999999999 GRUPPO BLAH BLAH BLAH PL(LE)</RiferimentoTesto>
; </AltriDatiGestionali>
; </DettaglioLinee>
; <DettaglioLinee>
; <NumeroLinea>2</NumeroLinea>
; <CodiceArticolo>
; <CodiceTipo>Codice Art. ABCDEF</CodiceTipo>
; <CodiceValore>9999999999</CodiceValore>
; </CodiceArticolo>
; <CodiceArticolo>
; <CodiceTipo>EAN</CodiceTipo>
; <CodiceValore>9999999999</CodiceValore>
; </CodiceArticolo>
; <Descrizione>ABCDEF XYZ MID</Descrizione>
; <Quantita>1.00</Quantita>
; <UnitaMisura>NR</UnitaMisura>
; <PrezzoUnitario>268.50000000</PrezzoUnitario>
; <PrezzoTotale>268.50</PrezzoTotale>
; <AliquotaIVA>4.00</AliquotaIVA>
; <AltriDatiGestionali>
; <TipoDato>DP</TipoDato>
; <RiferimentoTesto>999999999 GRUPPO BLAH BLAH BLAH PL(LE)</RiferimentoTesto>
; </AltriDatiGestionali>
; </DettaglioLinee>
; <DatiRiepilogo>
; <AliquotaIVA>4.00</AliquotaIVA>
; <Arrotondamento>0.00</Arrotondamento>
; <ImponibileImporto>341.07</ImponibileImporto>
; <Imposta>13.64</Imposta>
; <EsigibilitaIVA>I</EsigibilitaIVA>
; </DatiRiepilogo>
; </DatiBeniServizi>
; <DatiPagamento>
; <CondizioniPagamento>XX02</CondizioniPagamento>
; <DettaglioPagamento>
; <ModalitaPagamento>XX05</ModalitaPagamento>
; <DataScadenzaPagamento>2018-11-30</DataScadenzaPagamento>
; <ImportoPagamento>354.71</ImportoPagamento>
; </DettaglioPagamento>
; </DatiPagamento>
; <Allegati>
; <NomeAttachment>9999_2018_2130009999.pdf</NomeAttachment>
; <FormatoAttachment>pdf</FormatoAttachment>
; <DescrizioneAttachment>In allegato documento non valido ai fini fiscali</DescrizioneAttachment>
; <Attachment>JVBERi0xLjMNCiXi48/TDQoyIDAgb ...
; ... BASE64 PDF DATA HERE ...
; ... BASE64 PDF DATA HERE ...
; ... BASE64 PDF DATA HERE ...
; ... BASE64 PDF DATA HERE ...
; ... BASE64 PDF DATA HERE ...
; ... BASE64 PDF DATA HERE ...
; AAAAAAAAAAAAAAAAAAA=</Attachment>
; </Allegati>
; </FatturaElettronicaBody>
; </nr1:FatturaElettronica>