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
(DataFlex) Insert PDF as Base64 into XML, then Extract back to PDF FileDemonstrates how to insert any file into XML using base64 encoding, and then extract back to the original file. This example embeds a PDF in the XML, but the type of file does not matter. It can be any type of file.
Use ChilkatAx-win32.pkg Procedure Test Handle hoBd Boolean iSuccess Handle hoXml Handle hoBd2 String sTemp1 // Load our PDF file. Get Create (RefClass(cComChilkatBinData)) To hoBd If (Not(IsComObjectCreated(hoBd))) Begin Send CreateComObject of hoBd End Get ComLoadFile Of hoBd "qa_data/helloWorld.pdf" To iSuccess If (iSuccess <> True) Begin Showln "Failed to load PDF file." Procedure_Return End // Load the following XML: // // <?xml version="1.0" encoding="utf-8" ?> // <something> // <xyz> // <abc123>A base64 encoded PDF file will be inserted under this node.</abc123> // </xyz> // </something> Get Create (RefClass(cComChilkatXml)) To hoXml If (Not(IsComObjectCreated(hoXml))) Begin Send CreateComObject of hoXml End Get ComLoadXmlFile Of hoXml "qa_data/xml/xmlToContainPdf.xml" To iSuccess If (iSuccess <> True) Begin Showln "Failed to load XML file." Procedure_Return End // Insert the PDF into the XML. Get ComGetEncoded Of hoBd "base64" To sTemp1 Send ComNewChild2 To hoXml "xyz|pdfData" sTemp1 // Show the new XML: Get ComGetXml Of hoXml To sTemp1 Showln sTemp1 // The XML now looks like this: // <?xml version="1.0" encoding="utf-8" ?> // <something> // <xyz> // <abc123>A base64 encoded PDF file will be inserted under this node.</abc123> // <pdfData>JVBERi0xL ... UlRU9GCg==</pdfData> // </xyz> // </something> // To extract the PDF data out and restore the PDF file: Get Create (RefClass(cComChilkatBinData)) To hoBd2 If (Not(IsComObjectCreated(hoBd2))) Begin Send CreateComObject of hoBd2 End Get ComGetChildContent Of hoXml "xyz|pdfData" To sTemp1 Get ComAppendEncoded Of hoBd2 sTemp1 "base64" To iSuccess Get ComWriteFile Of hoBd2 "qa_output/helloWorld.pdf" To iSuccess Showln "Success." End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.