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
(SQL Server) 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
-- Important: See this note about string length limitations for strings returned by sp_OAMethod calls. -- CREATE PROCEDURE ChilkatSample AS BEGIN DECLARE @hr int -- Important: Do not use nvarchar(max). See the warning about using nvarchar(max). DECLARE @sTmp0 nvarchar(4000) -- The XML invoice is shown at the bottom of this example. DECLARE @xml int -- Use "Chilkat_9_5_0.Xml" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.Xml', @xml OUT IF @hr <> 0 BEGIN PRINT 'Failed to create ActiveX component' RETURN END DECLARE @success int EXEC sp_OAMethod @xml, 'LoadXmlFile', @success OUT, 'qa_data/xml/fatture_invoice.xml' IF @success <> 1 BEGIN EXEC sp_OAGetProperty @xml, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @xml RETURN END -- Get the Base64 PDF content. DECLARE @sb int -- Use "Chilkat_9_5_0.StringBuilder" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.StringBuilder', @sb OUT EXEC sp_OAMethod @xml, 'GetChildContentSb', @success OUT, 'FatturaElettronicaBody|Allegati|Attachment', @sb IF @success <> 1 BEGIN EXEC sp_OAGetProperty @xml, 'LastErrorText', @sTmp0 OUT PRINT @sTmp0 EXEC @hr = sp_OADestroy @xml EXEC @hr = sp_OADestroy @sb RETURN END -- Decode the base64 DECLARE @bd int -- Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 EXEC @hr = sp_OACreate 'Chilkat.BinData', @bd OUT EXEC sp_OAMethod @bd, 'AppendEncodedSb', @success OUT, @sb, 'base64' -- Save to a PDF file. EXEC sp_OAMethod @bd, 'WriteFile', @success OUT, '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> EXEC @hr = sp_OADestroy @xml EXEC @hr = sp_OADestroy @sb EXEC @hr = sp_OADestroy @bd END GO |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.