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
(PureBasic) 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
IncludeFile "CkBinData.pb" IncludeFile "CkXml.pb" IncludeFile "CkStringBuilder.pb" Procedure ChilkatExample() ; The XML invoice is shown at the bottom of this example. xml.i = CkXml::ckCreate() If xml.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success.i = CkXml::ckLoadXmlFile(xml,"qa_data/xml/fatture_invoice.xml") If success <> 1 Debug CkXml::ckLastErrorText(xml) CkXml::ckDispose(xml) ProcedureReturn EndIf ; Get the Base64 PDF content. sb.i = CkStringBuilder::ckCreate() If sb.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkXml::ckGetChildContentSb(xml,"FatturaElettronicaBody|Allegati|Attachment",sb) If success <> 1 Debug CkXml::ckLastErrorText(xml) CkXml::ckDispose(xml) CkStringBuilder::ckDispose(sb) ProcedureReturn EndIf ; Decode the base64 bd.i = CkBinData::ckCreate() If bd.i = 0 Debug "Failed to create object." ProcedureReturn EndIf success = CkBinData::ckAppendEncodedSb(bd,sb,"base64") ; Save to a PDF file. success = CkBinData::ckWriteFile(bd,"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> CkXml::ckDispose(xml) CkStringBuilder::ckDispose(sb) CkBinData::ckDispose(bd) ProcedureReturn EndProcedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.