Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Unicode C) 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 <C_CkXmlW.h> #include <C_CkStringBuilderW.h> #include <C_CkBinDataW.h> void ChilkatSample(void) { HCkXmlW xml; BOOL success; HCkStringBuilderW sb; HCkBinDataW bd; // The XML invoice is shown at the bottom of this example. xml = CkXmlW_Create(); success = CkXmlW_LoadXmlFile(xml,L"qa_data/xml/fatture_invoice.xml"); if (success != TRUE) { wprintf(L"%s\n",CkXmlW_lastErrorText(xml)); CkXmlW_Dispose(xml); return; } // Get the Base64 PDF content. sb = CkStringBuilderW_Create(); success = CkXmlW_GetChildContentSb(xml,L"FatturaElettronicaBody|Allegati|Attachment",sb); if (success != TRUE) { wprintf(L"%s\n",CkXmlW_lastErrorText(xml)); CkXmlW_Dispose(xml); CkStringBuilderW_Dispose(sb); return; } // Decode the base64 bd = CkBinDataW_Create(); success = CkBinDataW_AppendEncodedSb(bd,sb,L"base64"); // Save to a PDF file. success = CkBinDataW_WriteFile(bd,L"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> CkXmlW_Dispose(xml); CkStringBuilderW_Dispose(sb); CkBinDataW_Dispose(bd); } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.