Quantcast
Channel: PDF tips & tricks
Viewing all articles
Browse latest Browse all 125

How to add or open pdf attachments - managing embedded files

$
0
0

Introduction


Embedded files, so-called pdf attachments, are used to guarantee the validity of the document in case there are external references in main content referring to them. For example, you can include supplementary documentation or appendix as an embedded file and link to it from some page of the main document. They can also be used in the same way as email attachments, and pdf document will act as “envelope” containing additional data. Using embedded files, PDF documents can be turned to self-contained structured units.

Detailed description of this PDF feature is contained in section 7.11.4 Embedded File Streams of the PDF specification.  

Adding PDF attachments


Code sample below shows how to add attachments to PDF document:

publicvoid AddPDFAttachments()
{
    // create document
    FixedDocument doc = newFixedDocument();

    // add attachments
    doc.Attachments.Add("Appendix-A",newEmbeddedFile("appendix_a.txt"));
    doc.Attachments.Add("Appendix-B",newEmbeddedFile("appendix_b.jpg"));

    // create text object
    Page page = newPage();
    TextObject textObject = newTextObject(StandardFonts.Helvetica,14);
    textObject.AppendText("Document with attachments, created using Apitron PDF Kit
    for .NET");
    page.Content.Translate(10,820);
    page.Content.AppendText(textObject);

    // add first page
    doc.Pages.Add(page);

    // save document
    using (Stream stream = File.Create("pdf_attachments.pdf"))
    {
        doc.Save(stream);
    }
}

Resulting image:

Pic. 1 Add pdf attachments

Pic. 1 Add pdf attachments

Note the panel on the left, with a paperclip, it allows you to view all attachments and open the desired file for viewing. You can also enumerate and read attachments programmatically, see the next sample.

Reading pdf attachments


See the code sample below that enumerates all attachments and prints their names and sizes:

publicvoid ReadPDFAttachments()
{
    // open document
    using (Stream stream = File.Open("pdf_attachments.pdf",FileMode.Open))
    {
        FixedDocument doc = newFixedDocument(stream);

        // enumerate attachments, print their names and sizes
        foreach (var fileEntry in doc.Attachments)
        {
            using (Stream attachmentStream = fileEntry.Value.GetStream())
            {
                Console.WriteLine("Found attachment: {0}, Size: {1} bytes",
                    fileEntry.Key,attachmentStream.Length);  
            }           
        }       
    }

    Console.ReadLine();
}

This code produces the following results:

Pic. 2 Enumerating and reading pdf attachments

Pic. 2 Enumerating and reading pdf attachments

You could also remove any attachment using the single call:

doc.Attachments.RemoveAttachment([attachment key]);

Conclusion


Embedded files feature is very useful for including additional data into the main PDF document without changing its content. And as you could see from this article, managing attachments is quite easy with fixed layout API offered by Apitron PDF Kit for .NET component. This pdf manipulation library can be used to add, remove, enumerate, or read any files attached to pdf documents. Contact us if you have any questions and we’ll be happy to answer.

Viewing all articles
Browse latest Browse all 125