VintaSoft Imaging .NET SDK 10.1
Vintasoft.Imaging.Pdf.Tree Namespace / PdfEmbeddedFile Class
Members Example



In This Topic
    PdfEmbeddedFile Class
    In This Topic
    Provides information about embedded file resource of PDF document.
    Object Model
    PdfEmbeddedFile ClassPdfBasicObject ClassPdfDocument ClassPdfIndirectReference ClassPdfMetadataResource ClassPdfMarkedContentProperty Class
    Syntax
    'Declaration
     
    Public Class PdfEmbeddedFile 
       Inherits PdfResource
    public class PdfEmbeddedFile : PdfResource 
    public __gc class PdfEmbeddedFile : public PdfResource 
    public ref class PdfEmbeddedFile : public PdfResource 
    Example
    Here is an example that shows how to add embedded file to PDF document:
    ''' <summary>
    ''' Adds the large file attachment to PDF document.
    ''' </summary>
    ''' <param name="pdfFilename">The PDF filename.</param>
    ''' <param name="attachmentFilename">The attachment filename.</param>
    Public Shared Sub AddLargeAttachment(pdfFilename As String, attachmentFilename As String)
        ' open PDF document
        Using document As New Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename)
            If document.EmbeddedFiles Is Nothing Then
                document.EmbeddedFiles = New Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecificationDictionary(document)
            End If
                
            ' open attachment file
            Using attachmentStream As System.IO.Stream = System.IO.File.OpenRead(attachmentFilename)
                ' set ZIP compression level to 2 (fast)
                Dim compressionSettings As New Vintasoft.Imaging.Pdf.PdfCompressionSettings()
                compressionSettings.ZipCompressionLevel = 2
                
                ' create PDF embedded file
                Dim embeddedFile As New Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFile(document, attachmentStream, False, Vintasoft.Imaging.Pdf.PdfCompression.Zip, compressionSettings)
                
                ' create PDF embedded file specification
                Dim fileSpecification As New Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecification(System.IO.Path.GetFileName(attachmentFilename), embeddedFile)
                
                ' add PDF embedded file specification to PDF document
                document.EmbeddedFiles.Add(fileSpecification)
                
                ' save changes in PDF document (file attachment will be encoded during saving of PDF document)
                document.SaveChanges()
            End Using
        End Using
    End Sub
                
    ''' <summary>
    ''' Adds the file attachment to PDF document.
    ''' </summary>
    ''' <param name="pdfFilename">The PDF filename.</param>
    ''' <param name="attachmentFilename">The attachment filename.</param>
    Public Shared Sub AddAttachment(pdfFilename As String, attachmentFilename As String)
        ' open PDF document
        Using document As New Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename)
            If document.EmbeddedFiles Is Nothing Then
                document.EmbeddedFiles = New Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecificationDictionary(document)
            End If
                
            ' create PDF embedded file (file attachment will be encoded in constructor of PdfEmbeddedFile class)
            Dim embeddedFile As New Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFile(document, attachmentFilename, Vintasoft.Imaging.Pdf.PdfCompression.Zip)
                
            ' create PDF embedded file specification
            Dim fileSpecification As New Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecification(System.IO.Path.GetFileName(attachmentFilename), embeddedFile)
                
            ' add PDF embedded file specification to PDF document
            document.EmbeddedFiles.Add(fileSpecification)
                
            ' save PDF document
            document.SaveChanges()
        End Using
    End Sub
                
    ''' <summary>
    ''' Extracts the file attachments of PDF document in specified folder.
    ''' </summary>
    ''' <param name="pdfFilename">The PDF filename.</param>
    ''' <param name="attachmentOutputDir">The attachment output directory.</param>
    Public Shared Sub ExtractFileAttachments(pdfFilename As String, attachmentOutputDir As String)
        ' open PDF document
        Using document As New Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename)
            ' if PDF document has embedded files
            If document.EmbeddedFiles IsNot Nothing Then
                ' for each file embedded in PDF document
                For Each fileSpecification As Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecification In document.EmbeddedFiles.Values
                    If fileSpecification.EmbeddedFile IsNot Nothing Then
                        ' save embedded file resource to a file in output directory
                        Dim filename As String = System.IO.Path.GetFileName(fileSpecification.Filename)
                        fileSpecification.EmbeddedFile.Save(System.IO.Path.Combine(attachmentOutputDir, filename))
                    End If
                Next
            End If
        End Using
    End Sub
    /// <summary>
    /// Adds the large file attachment to PDF document.
    /// </summary>
    /// <param name="pdfFilename">The PDF filename.</param>
    /// <param name="attachmentFilename">The attachment filename.</param>
    public static void AddLargeAttachment(string pdfFilename, string attachmentFilename)
    {
        // open PDF document
        using (Vintasoft.Imaging.Pdf.PdfDocument document = new Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename))
        {
            if (document.EmbeddedFiles == null)
                document.EmbeddedFiles = new Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecificationDictionary(document);
                
            // open attachment file
            using (System.IO.Stream attachmentStream = System.IO.File.OpenRead(attachmentFilename))
            {
                // set ZIP compression level to 2 (fast)
                Vintasoft.Imaging.Pdf.PdfCompressionSettings compressionSettings = new Vintasoft.Imaging.Pdf.PdfCompressionSettings();
                compressionSettings.ZipCompressionLevel = 2;
                
                // create PDF embedded file
                Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFile embeddedFile = new Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFile(
                    document, attachmentStream, false, Vintasoft.Imaging.Pdf.PdfCompression.Zip, compressionSettings);
                
                // create PDF embedded file specification
                Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecification fileSpecification =
                     new Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecification(System.IO.Path.GetFileName(attachmentFilename), embeddedFile);
                
                // add PDF embedded file specification to PDF document
                document.EmbeddedFiles.Add(fileSpecification);
                
                // save changes in PDF document (file attachment will be encoded during saving of PDF document)
                document.SaveChanges();
            }
        }
    }
                
    /// <summary>
    /// Adds the file attachment to PDF document.
    /// </summary>
    /// <param name="pdfFilename">The PDF filename.</param>
    /// <param name="attachmentFilename">The attachment filename.</param>
    public static void AddAttachment(string pdfFilename, string attachmentFilename)
    {
        // open PDF document
        using (Vintasoft.Imaging.Pdf.PdfDocument document = new Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename))
        {
            if (document.EmbeddedFiles == null)
                document.EmbeddedFiles = new Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecificationDictionary(document);
                
            // create PDF embedded file (file attachment will be encoded in constructor of PdfEmbeddedFile class)
            Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFile embeddedFile = new Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFile(
                document, attachmentFilename, Vintasoft.Imaging.Pdf.PdfCompression.Zip);
                
            // create PDF embedded file specification
            Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecification fileSpecification =
                 new Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecification(System.IO.Path.GetFileName(attachmentFilename), embeddedFile);
                
            // add PDF embedded file specification to PDF document
            document.EmbeddedFiles.Add(fileSpecification);
                
            // save PDF document
            document.SaveChanges();
        }
    }
                
    /// <summary>
    /// Extracts the file attachments of PDF document in specified folder.
    /// </summary>
    /// <param name="pdfFilename">The PDF filename.</param>
    /// <param name="attachmentOutputDir">The attachment output directory.</param>
    public static void ExtractFileAttachments(string pdfFilename, string attachmentOutputDir)
    {
        // open PDF document
        using (Vintasoft.Imaging.Pdf.PdfDocument document = new Vintasoft.Imaging.Pdf.PdfDocument(pdfFilename))
        {
            // if PDF document has embedded files
            if (document.EmbeddedFiles != null)
            {
                // for each file embedded in PDF document
                foreach (Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFileSpecification fileSpecification in document.EmbeddedFiles.Values)
                {
                    if (fileSpecification.EmbeddedFile != null)
                    {
                        // save embedded file resource to a file in output directory
                        string filename = System.IO.Path.GetFileName(fileSpecification.Filename);
                        fileSpecification.EmbeddedFile.Save(System.IO.Path.Combine(attachmentOutputDir, filename));
                    }
                }
            }
        }
    }
    Inheritance Hierarchy

    System.Object
       Vintasoft.Imaging.Pdf.Tree.PdfTreeNodeBase
          Vintasoft.Imaging.Pdf.Tree.PdfResource
             Vintasoft.Imaging.Pdf.Tree.PdfEmbeddedFile

    Requirements

    Target Platforms: .NET 5; .NET Core 3.1; .NET Framework 4.8, 4.7, 4.6, 4.5, 4.0, 3.5

    See Also