←Select platform

PDFEmbeddedFile Class

Summary

Properties of an embedded file (attachment) in this document.

Syntax
C#
C++/CLI
Java
Python
[SerializableAttribute()] 
public class PDFEmbeddedFile 
public class PDFEmbeddedFile 
public: 
   [SerializableAttribute] 
   ref class PDFEmbeddedFile 
class PDFEmbeddedFile: 
Remarks

PDF documents support embedded files of any type. The file can be another PDF, a TIF file, a JPEG image, or any other binary or textual data.

The embedded files (attachments) of a PDF document can be read using the following:

The binary data of an embedded file can be extracted and saved to an output file or stream using PDFFile.ExtractEmbeddedFile.

PDFEmbeddedFile contains the following members:

Member Description
FileNumber 1-based file number of this embedded file. This is a unique value
FileName Embedded file name
ObjectNumber PDF object number of this embedded file. This is a unique value
Description Description of this embedded file. This is optional
FileSize Size of the file in bytes
Created Date this file was created
Modified Date this file was last modified
SchemaValues Values for the PDF schema if this PDF is a portfolio. This is optional

Note that the FileName may not be unique in the collection of embedded files found in a PDF document. Instead, use the FileNumber or ObjectNumber property to get a unique identifier for the embedded file.

FileNumber is used as the parameter to identify the embedded file to extract using PDFFile.ExtractEmbeddedFile.

Refer to PDFDocument.EmbeddedFiles for more information on using a PDFSchema with PDF portfolio and embedded files.

Example
C#
Java
using Leadtools; 
using Leadtools.Codecs; 
using Leadtools.Controls; 
using Leadtools.Pdf; 
using Leadtools.Svg; 
using Leadtools.WinForms; 
 
 
public static void ExtractEmbeddedFiles(string inputFileName, string outputDir) 
{ 
   // Load the source document 
   PDFDocument pdfDocument = new PDFDocument(inputFileName); 
   if (!pdfDocument.HasEmbeddedFiles) 
   { 
      Console.WriteLine("PDF does not have embedded files"); 
      // No embedded files 
      pdfDocument.Dispose(); 
      return; 
   } 
 
   // Read the attachments 
   pdfDocument.ParseDocumentStructure(PDFParseDocumentStructureOptions.EmbeddedFiles); 
 
   if (!Directory.Exists(outputDir)) 
      Directory.CreateDirectory(outputDir); 
 
   foreach (PDFEmbeddedFile embeddedFile in pdfDocument.EmbeddedFiles) 
   { 
      // Show this file information 
      Console.WriteLine($"Number:{embeddedFile.FileNumber}"); 
      Console.WriteLine($"  FileName:{embeddedFile.FileName}"); 
      Console.WriteLine($"  FileSize:{embeddedFile.FileSize}"); 
      Console.WriteLine($"  Description:{embeddedFile.Description}"); 
      Console.WriteLine($"  Created:{embeddedFile.Created}"); 
      Console.WriteLine($"  Modified:{embeddedFile.Modified}"); 
 
      // Extract this attachment to the output directory 
      // Note: FileName of an embedded file is not guaranteed to be unique, therefore, we will append 
      // the file number which is unique to the output name 
      string outputFileName = $"{embeddedFile.FileNumber}-{embeddedFile.FileName}"; 
      Console.WriteLine($"  Extracting to {outputFileName}"); 
      outputFileName = Path.Combine(outputDir, outputFileName); 
      PDFFile.ExtractEmbeddedFile(inputFileName, pdfDocument.Password, embeddedFile.FileNumber, outputFileName); 
   } 
 
   pdfDocument.Dispose(); 
} 
 
import java.io.BufferedWriter; 
import java.io.Console; 
import java.io.File; 
import java.io.FileWriter; 
import java.io.IOException; 
import java.io.OutputStream; 
import java.io.OutputStreamWriter; 
import java.nio.Buffer; 
import java.nio.file.Files; 
import java.nio.file.Path; 
import java.nio.file.Paths; 
import java.nio.file.StandardOpenOption; 
import java.sql.Date; 
import java.text.SimpleDateFormat; 
import java.time.LocalDateTime; 
import java.util.ArrayList; 
import java.util.List; 
 
import javax.xml.validation.Schema; 
 
import org.apache.lucene.store.Directory; 
import org.junit.*; 
import org.junit.runner.JUnitCore; 
import org.junit.runner.Result; 
import org.junit.runner.notification.Failure; 
import static org.junit.Assert.*; 
 
import leadtools.*; 
import leadtools.barcode.*; 
import leadtools.codecs.*; 
import leadtools.pdf.*; 
import leadtools.svg.*; 
 
 
public void pdfDocumentExtractEmbeddedFilesExample() { 
   String inputFileName = "C:\\LEADTOOLS23\\Resources\\Images\\Leadtools.pdf"; 
   String outputDir = "C:\\LEADTOOLS23\\Bin"; 
   // Load the source document 
   PDFDocument pdfDocument = new PDFDocument(inputFileName); 
   if (!pdfDocument.hasEmbeddedFiles()) { 
      System.out.println("PDF does not have embedded files"); 
      // No embedded files 
      pdfDocument.dispose(); 
      return; 
   } 
 
   // Read the attachments 
   pdfDocument.parseDocumentStructure(PDFParseDocumentStructureOptions.EMBEDDED_FILES.getValue()); 
 
   File directory = new File(String.valueOf(outputDir)); 
   if (!directory.exists()) 
      directory.mkdir(); 
 
   for (PDFEmbeddedFile embeddedFile : pdfDocument.getEmbeddedFiles()) { 
      // Show this file information 
      System.out.println("Number:" + embeddedFile.getFileNumber()); 
      System.out.println("FileName:" + embeddedFile.getFileName()); 
      System.out.println("FileSize:" + embeddedFile.getFileSize()); 
      System.out.println("Description:" + embeddedFile.getDescription()); 
      System.out.println("Created:" + embeddedFile.getCreated()); 
      System.out.println("Modified:" + embeddedFile.getModified()); 
 
      // Extract this attachment to the output directory 
      // Note: FileName of an embedded file is not guaranteed to be unique, therefore, 
      // we will append 
      // the file number which is unique to the output name 
      String outputFileName = embeddedFile.getFileNumber() + "-" + embeddedFile.getFileName(); 
      System.out.println(" Extracting to " + outputFileName); 
      outputFileName = combine(outputDir, outputFileName); 
      PDFFile.extractEmbeddedFile(inputFileName, pdfDocument.getPassword(), embeddedFile.getFileNumber(), 
            outputFileName); 
   } 
 
   pdfDocument.dispose(); 
} 
Requirements

Target Platforms

Help Version 23.0.2024.2.29
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2024 LEAD Technologies, Inc. All Rights Reserved.

Leadtools.Pdf Assembly
Products | Support | Contact Us | Intellectual Property Notices
© 1991-2023 LEAD Technologies, Inc. All Rights Reserved.