Chilkat HOME Android™ Classic ASP C C++ C# Mono C# .NET Core C# C# UWP/WinRT DataFlex Delphi ActiveX Delphi DLL Visual FoxPro Java Lianja MFC Objective-C Perl PHP ActiveX PHP Extension PowerBuilder PowerShell PureBasic CkPython Chilkat2-Python Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ Visual Basic 6.0 VB.NET VB.NET UWP/WinRT VBScript Xojo Plugin Node.js Excel Go
(MFC) Extract PDF Invoice from FatturaElettronica XMLDemonstrates how to extract a PDF attachment from an XML invoice (fattura elettronica) -- ivaservizi.agenziaentrate.gov.it/docs/xsd/fatture/v1.2
#include <CkXml.h> #include <CkStringBuilder.h> #include <CkBinData.h> void ChilkatSample(void) { CkString strOut; // The XML invoice is shown at the bottom of this example. CkXml xml; bool success = xml.LoadXmlFile("qa_data/xml/fatture_invoice.xml"); if (success != true) { strOut.append(xml.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Get the Base64 PDF content. CkStringBuilder sb; success = xml.GetChildContentSb("FatturaElettronicaBody|Allegati|Attachment",sb); if (success != true) { strOut.append(xml.lastErrorText()); strOut.append("\r\n"); SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); return; } // Decode the base64 CkBinData bd; 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> SetDlgItemText(IDC_EDIT1,strOut.getUnicode()); } |
© 2000-2022 Chilkat Software, Inc. All Rights Reserved.