Properties of an embedded file (attachment) in this document.
[SerializableAttribute()]
public class PDFEmbeddedFile
public class PDFEmbeddedFile
public:
[SerializableAttribute]
ref class PDFEmbeddedFile
class PDFEmbeddedFile:
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.
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();
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document