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) Extract Embedded Files from PDFDemonstrates how to get information about the embedded files (if any) contained within a PDF, and shows how to extract each file. Note: This example requires Chilkat v9.5.0.95 or greater.
Use ChilkatAx-win32.pkg Procedure Test Handle hoPdf Boolean iSuccess Integer iNumFiles Variant vJson Handle hoJson Variant vBd Handle hoBd Integer i String sFilename String sTemp1 Boolean bTemp1 // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Get Create (RefClass(cComChilkatPdf)) To hoPdf If (Not(IsComObjectCreated(hoPdf))) Begin Send CreateComObject of hoPdf End Get ComLoadFile Of hoPdf "qa_data/pdf/embedded_files/my_embedded_files_test.pdf" To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPdf To sTemp1 Showln sTemp1 Procedure_Return End // Note: The embedded file functionality was added in Chilkat v9.5.0.95 // How many embedded files exist within the opened PDF? Get ComNumEmbeddedFiles Of hoPdf To iNumFiles Showln "Number of embedded files: " iNumFiles Get Create (RefClass(cComChilkatJsonObject)) To hoJson If (Not(IsComObjectCreated(hoJson))) Begin Send CreateComObject of hoJson End Set ComEmitCompact Of hoJson To False Get Create (RefClass(cComChilkatBinData)) To hoBd If (Not(IsComObjectCreated(hoBd))) Begin Send CreateComObject of hoBd End // Get information about each file, and extract each to the filesystem. Move 0 To i While (i < iNumFiles) Get pvComObject of hoJson to vJson Get ComGetEmbeddedFileInfo Of hoPdf i vJson To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPdf To sTemp1 Showln sTemp1 Procedure_Return End Get ComEmit Of hoJson To sTemp1 Showln sTemp1 // Get the filename from the JSON. Move "someFile.dat" To sFilename // The filename SHOULD always be present.. Get ComHasMember Of hoJson "filename" To bTemp1 If (bTemp1 = True) Begin Get ComStringOf Of hoJson "filename" To sFilename End // Get the file data. Get pvComObject of hoBd to vBd Get ComGetEmbeddedFileBd Of hoPdf i vBd To iSuccess If (iSuccess = False) Begin Get ComLastErrorText Of hoPdf To sTemp1 Showln sTemp1 Procedure_Return End // Save the contents of the bd to the filename (in the current working directory) in the filesystem. Get ComWriteFile Of hoBd sFilename To iSuccess If (iSuccess = False) Begin Showln "Failed to write output file." End Move (i + 1) To i Loop // Sample output for the above code: // Number of embedded files: 3 // { // "filename": "employees.json", // "desc": "JSON", // "subType": "application/json", // "size": 159, // "creationDate": "D:20230715170506-05'00'", // "modDate": "D:20160207153838-05'00'" // } // // { // "filename": "rsaPubKey.pem", // "desc": "RSA Public Key PEM", // "size": 451, // "creationDate": "D:20230715170546-05'00'", // "modDate": "D:20150724133153-05'00'" // } // // { // "filename": "starfish.jpg", // "desc": "Starfish JPG", // "subType": "image/jpeg", // "size": 6229, // "creationDate": "D:20230715170356-05'00'", // "modDate": "D:20080529103055-05'00'" // } End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.