Working with Attachments

Retrieve Attached Files from a OneNote Document

All files attached to a Microsoft OneNote document can be retrieved. These files are stored in AttachedFile nodes. The AttachedFile class represents an attached file.

To extract all attached files from a OneNote document, follow these steps:

  1. Use the Document.GetChildNodes method to select all AttachedFile nodes.
  2. Iterate through the resulting node collections.
  3. Extract image bytes array using the AttachedFile.Bytes property.
  4. Save the attached file bytes to the local space.

The following code example demonstrates how to extract attached files from a OneNote document and save them to local space.

 1// The path to the documents directory.
 2string dataDir = RunExamples.GetDataDir_Attachments();
 3
 4// Load the document into Aspose.Note.
 5Document oneFile = new Document( dataDir + "Sample1.one");
 6
 7// Get a list of attached file nodes
 8IList<AttachedFile> nodes = oneFile.GetChildNodes<AttachedFile>();
 9
10// Iterate through all nodes
11foreach (AttachedFile file in nodes)
12{
13    // Load attached file to a stream object
14    using (Stream outputStream = new MemoryStream(file.Bytes))
15    {
16        // Create a local file
17        using (Stream fileStream = System.IO.File.OpenWrite(String.Format(dataDir + file.FileName)))
18        {
19            // Copy file stream
20            CopyStream(outputStream, fileStream);
21        }
22    }
23}
 1private static void CopyStream(Stream input, Stream output)
 2{
 3    try
 4    {
 5        byte[] buffer = new byte[8 * 1024];
 6        int len;
 7        while ((len = input.Read(buffer, 0, buffer.Length)) > 0)
 8        {
 9            output.Write(buffer, 0, len);
10        }
11    }
12    catch (Exception ex)
13    {
14        throw new Exception(ex.Message);
15    }
16}

Attach a File to the OneNote Document

To keep a copy of any document or file as part of the OneNote document, developers can attach it to the OneNote page. The AttachedFile class represents an attachment file.

To attach a file to a OneNote document, follow these steps:

  1. Use the Document class to generate the OneNote file.
  2. Initialize Page, OutlineElement and Outline classes by passing document object.
  3. Initialize AttachedFile object by passing the document object and file path.
  4. Add attached file node under the OutlineElement node.
  5. Save a OneNote document.

Attach File by Passing its Path

The following code example demonstrates how to attach a file to a OneNote document.

 1// The path to the documents directory.
 2string dataDir = RunExamples.GetDataDir_Attachments();
 3
 4// Create an object of the Document class
 5Document doc = new Document();
 6// Initialize Page class object
 7Aspose.Note.Page page = new Aspose.Note.Page(doc);
 8// Initialize Outline class object
 9Outline outline = new Outline(doc);
10// Initialize OutlineElement class object
11OutlineElement outlineElem = new OutlineElement(doc);
12// Initialize AttachedFile class object
13AttachedFile attachedFile = new AttachedFile(doc,  dataDir + "attachment.txt");
14// Add attached file
15outlineElem.AppendChildLast(attachedFile);
16// Add outline element node
17outline.AppendChildLast(outlineElem);
18// Add outline node
19page.AppendChildLast(outline);
20// Add page node
21doc.AppendChildLast(page);
22dataDir = dataDir + "AttachFileByPath_out.one";
23doc.Save(dataDir);

Attach File and Set its Icon by Passing Files Path

The following code example demonstrates how to attach a file and also set attach file icon in the OneNote document.

 1// The path to the documents directory.
 2string dataDir = RunExamples.GetDataDir_Attachments();
 3
 4// Create an object of the Document class
 5Document doc = new Document();
 6// Initialize Page class object
 7Aspose.Note.Page page = new Aspose.Note.Page(doc);
 8// Initialize Outline class object
 9Outline outline = new Outline(doc);
10// Initialize OutlineElement class object
11OutlineElement outlineElem = new OutlineElement(doc);
12// Initialize AttachedFile class object and also pass its icon path
13AttachedFile attachedFile = new AttachedFile(doc, dataDir + "attachment.txt", File.OpenRead(dataDir  + "icon.jpg"), ImageFormat.Jpeg);
14// Add attached file
15outlineElem.AppendChildLast(attachedFile);
16// Add outline element node
17outline.AppendChildLast(outlineElem);
18// Add outline node
19page.AppendChildLast(outline);
20// Add page node
21doc.AppendChildLast(page);
22
23dataDir = dataDir + "AttachFileAndSetIcon_out.one";
24doc.Save(dataDir);
Subscribe to Aspose Product Updates

Get monthly newsletters & offers directly delivered to your mailbox.