Sample code for 30+ languages & platforms
C#

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.2

Chilkat C# Downloads

C#
bool success = false;

//  The XML invoice is shown at the bottom of this example.
Chilkat.Xml xml = new Chilkat.Xml();
success = xml.LoadXmlFile("qa_data/xml/fatture_invoice.xml");
if (success != true) {
    Debug.WriteLine(xml.LastErrorText);
    return;
}

//  Get the Base64 PDF content.
Chilkat.StringBuilder sb = new Chilkat.StringBuilder();
success = xml.GetChildContentSb("FatturaElettronicaBody|Allegati|Attachment",sb);
if (success != true) {
    Debug.WriteLine(xml.LastErrorText);
    return;
}

//  Decode the base64
Chilkat.BinData bd = new Chilkat.BinData();
success = bd.AppendEncodedSb(sb,"base64");

//  Save to a PDF file.
success = bd.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>