Class Document

Class Document

Namespace: Aspose.Note
Assembly: Aspose.Note.dll (24.12.0)

Represents an Aspose.Note document.

public class Document : CompositeNode<page>, INode, ICompositeNode<page>, ICompositeNode, IEnumerable<page>, IEnumerable, INotebookChildNode

Inheritance

objectNodeCompositeNodeBaseCompositeNode<page>Document

Implements

INode, ICompositeNode<page>, ICompositeNode, IEnumerable<page>, IEnumerable, INotebookChildNode

Inherited Members

CompositeNode<page>.GetEnumerator(), CompositeNode<page>.InsertChild<t1>(int, T1), CompositeNode<page>.InsertChildrenRange(int, IEnumerable<page>), CompositeNode<page>.InsertChildrenRange(int, params Page[]), CompositeNode<page>.AppendChildFirst<t1>(T1), CompositeNode<page>.AppendChildLast<t1>(T1), CompositeNode<page>.RemoveChild<t1>(T1), CompositeNode<page>.Accept(DocumentVisitor), CompositeNode<page>.GetChildNodes(NodeType), CompositeNode<page>.GetChildNodes<t1>(), CompositeNode<page>.IsComposite, CompositeNode<page>.FirstChild, CompositeNode<page>.LastChild, CompositeNodeBase.GetChildNodes(NodeType), CompositeNodeBase.GetChildNodes<t1>(), CompositeNodeBase.CheckDocument(Node), Node.Accept(DocumentVisitor), Node.Document, Node.IsComposite, Node.NodeType, Node.ParentNode, Node.PreviousSibling, Node.NextSibling, object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()

Examples

Shows how to sent document to a printer using standard Windows dialog with default options.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                                  var document = new Aspose.Note.Document(dataDir + "Aspose.one");

                                                                                                  document.Print();

Shows how to save a document.```csharp
string inputFile = "Sample1.one";
                                        string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                        string outputFile = "SaveDocToOneNoteFormat_out.one";

                                        Document doc = new Document(dataDir + inputFile);
                                        doc.Save(dataDir + outputFile);

Shows how to an encrypted document.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                          LoadOptions loadOptions = new LoadOptions { DocumentPassword = "password" };
                                          Document doc = new Document(dataDir + "Sample1.one", loadOptions);

Shows how to save document with encryption.```csharp
// The path to the documents directory.
                                                      string dataDir = RunExamples.GetDataDir_NoteBook();

                                                      Document document = new Document();
                                                      document.Save(dataDir + "CreatingPasswordProtectedDoc_out.one", new OneSaveOptions() { DocumentPassword = "pass" });

Shows how to save a document using SaveFormat enumeration.```csharp string inputFile = “Sample1.one”; string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string outputFile = “SaveDocToOneNoteFormatUsingSaveFormat_out.one”;

                                                                 Document document = new Document(dataDir + inputFile);

                                                                 document.Save(dataDir + outputFile, SaveFormat.One);

Shows how to save a document using OneSaveOptions.```csharp
string inputFile = "Sample1.one";
                                                             string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                             string outputFile = "SaveDocToOneNoteFormatUsingOneSaveOptions_out.one";

                                                             Document document = new Document(dataDir + inputFile);

                                                             document.Save(dataDir + outputFile, new OneSaveOptions());

Shows how to get page’s count of a document.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Pages();

                                                   // Load the document into Aspose.Note.
                                                   Document oneFile = new Document(dataDir + "Aspose.one");

                                                   // Get number of pages
                                                   int count = oneFile.Count();

                                                   // Print count on the output screen
                                                   Console.WriteLine(count);

Shows how to save a document in pdf format using default settings.```csharp
// The path to the documents directory.
                                                                             string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                             // Load the document into Aspose.Note.
                                                                             Document oneFile = new Document(dataDir + "Aspose.one");

                                                                             // Save the document as PDF
                                                                             dataDir = dataDir + "SaveWithDefaultSettings_out.pdf";
                                                                             oneFile.Save(dataDir, SaveFormat.Pdf);

Shows how to save a document in gif format.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                  // Load the document into Aspose.Note.
                                                  Document oneFile = new Document(dataDir + "Aspose.one");

                                                  dataDir = dataDir + "SaveToImageDefaultOptions_out.gif";

                                                  // Save the document as gif.
                                                  oneFile.Save(dataDir, SaveFormat.Gif);

Shows how to set a image quality when saving document as image in JPEG format.```csharp
// The path to the documents directory.
                                                                                         string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                         // Load the document into Aspose.Note.
                                                                                         Document doc = new Document(dataDir + "Aspose.one");

                                                                                         dataDir = dataDir + "SetOutputImageResolution_out.jpg";

                                                                                         // Save the document.
                                                                                         doc.Save(dataDir, new ImageSaveOptions(SaveFormat.Jpeg) { Quality = 100 });

Shows how to set a image resolution when saving document as image.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                         // Load the document into Aspose.Note.
                                                                         Document doc = new Document(dataDir + "Aspose.one");

                                                                         dataDir = dataDir + "SetOutputImageResolution_out.jpg";

                                                                         // Save the document.
                                                                         doc.Save(dataDir, new ImageSaveOptions(SaveFormat.Jpeg) { Resolution = 220 });

Shows how to get file format of a document.```csharp
// The path to the documents directory.
                                                      string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                      var document = new Aspose.Note.Document(dataDir + "Aspose.one");
                                                      switch (document.FileFormat)
                                                      {
                                                          case FileFormat.OneNote2010:
                                                              // Process OneNote 2010
                                                              break;
                                                          case FileFormat.OneNoteOnline:
                                                              // Process OneNote Online
                                                              break;
                                                      }

Shows how to bind a hyperlink to an image.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Images();

                                                 var document = new Document();

                                                 var page = new Page(document);

                                                 var image = new Image(document, dataDir + "image.jpg") { HyperlinkUrl = "http://image.com" };

                                                 page.AppendChildLast(image);

                                                 document.AppendChildLast(page);

                                                 document.Save(dataDir + "Image with Hyperlink_out.one");

Shows how to save a document to a stream.```csharp
// The path to the documents directory.
                                                    string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                    // Load the document into Aspose.Note.
                                                    Document doc = new Document(dataDir + "Aspose.one");

                                                    MemoryStream dstStream = new MemoryStream();
                                                    doc.Save(dstStream, SaveFormat.Pdf);

                                                    // Rewind the stream position back to zero so it is ready for next reader.
                                                    dstStream.Seek(0, SeekOrigin.Begin);

Shows how to check if a document is password-protected.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “Aspose.one”);

                                                              Document document;
                                                              if (!Document.IsEncrypted(fileName, out document))
                                                              {
                                                                  Console.WriteLine("The document is loaded and ready to be processed.");
                                                              }
                                                              else
                                                              {
                                                                  Console.WriteLine("The document is encrypted. Provide a password.");
                                                              }

Shows how to add new section to a notebook.```csharp
// The path to the documents directory.
                                                      string dataDir = RunExamples.GetDataDir_NoteBook();

                                                      // Load a OneNote Notebook
                                                      var notebook = new Notebook(dataDir + "Notizbuch �ffnen.onetoc2");

                                                      // Append a new child to the Notebook
                                                      notebook.AppendChild(new Document(dataDir + "Neuer Abschnitt 1.one"));

                                                      dataDir = dataDir + "AddChildNode_out.onetoc2";

                                                      // Save the Notebook
                                                      notebook.Save(dataDir);

Shows how to check if a document load is failed because OneNote 2007 format is not supported.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “OneNote2007.one”);

                                                                                                    try
                                                                                                    {
                                                                                                        new Document(fileName);
                                                                                                    }
                                                                                                    catch (UnsupportedFileFormatException e)
                                                                                                    {
                                                                                                        if (e.FileFormat == FileFormat.OneNote2007)
                                                                                                        {
                                                                                                            Console.WriteLine("It looks like the provided file is in OneNote 2007 format that is not supported.");
                                                                                                        }
                                                                                                        else
                                                                                                            throw;
                                                                                                    }

Shows how to restore previous version of a page.```csharp
// The path to the documents directory.
                                                           string dataDir = RunExamples.GetDataDir_Pages();

                                                           // Load OneNote document and get first child           
                                                           Document document = new Document(dataDir + "Aspose.one");
                                                           Page page = document.FirstChild;           
                                                           Page previousPageVersion = document.GetPageHistory(page).Last();

                                                           document.RemoveChild(page);
                                                           document.AppendChildLast(previousPageVersion);

                                                           document.Save(dataDir + "RollBackRevisions_out.one");

Shows how to clone a page.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Pages();

                                 // Load OneNote document
                                 Document document = new Document(dataDir + "Aspose.one", new LoadOptions { LoadHistory = true });

                                 // Clone into new document without history
                                 var cloned = new Document();
                                 cloned.AppendChildLast(document.FirstChild.Clone());

                                 // Clone into new document with history
                                 cloned = new Document();
                                 cloned.AppendChildLast(document.FirstChild.Clone(true));

Shows how to save a document in html format with storing all resources(css/fonts/images) to a separate files.```csharp
string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                                                                                        var document = new Document(Path.Combine(dataDir, "Aspose.one"));

                                                                                                                        var options = new HtmlSaveOptions()
                                                                                                                                     {
                                                                                                                                         ExportCss = ResourceExportType.ExportAsStream,
                                                                                                                                         ExportFonts = ResourceExportType.ExportAsStream,
                                                                                                                                         ExportImages = ResourceExportType.ExportAsStream,
                                                                                                                                         FontFaceTypes = FontFaceType.Ttf
                                                                                                                                     };
                                                                                                                        document.Save(dataDir + "document_out.html", options);

Shows how to save a document to a stream in html format with embedding of all resources(css/fonts/images).```csharp string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); var document = new Document(Path.Combine(dataDir, “Aspose.one”));

                                                                                                                 var options = new HtmlSaveOptions()
                                                                                                                              {
                                                                                                                                  ExportCss = ResourceExportType.ExportEmbedded,
                                                                                                                                  ExportFonts = ResourceExportType.ExportEmbedded,
                                                                                                                                  ExportImages = ResourceExportType.ExportEmbedded,
                                                                                                                                  FontFaceTypes = FontFaceType.Ttf
                                                                                                                              };

                                                                                                                 var r = new MemoryStream();
                                                                                                                 document.Save(r, options);

Shows how to set text description for an image.```csharp
// The path to the documents directory.
                                                          string dataDir = RunExamples.GetDataDir_Images();

                                                          var document = new Document();
                                                          var page = new Page(document);
                                                          var image = new Image(document, dataDir + "image.jpg")
                                                                      {
                                                                          AlternativeTextTitle = "This is an image's title!",
                                                                          AlternativeTextDescription = "And this is an image's description!"
                                                                      };
                                                          page.AppendChildLast(image);
                                                          document.AppendChildLast(page);

                                                          dataDir = dataDir + "ImageAlternativeText_out.one";
                                                          document.Save(dataDir);

Shows how to get meta information about a page.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Pages();

                                                      // Load the document into Aspose.Note.
                                                      Document oneFile = new Document(dataDir + "Aspose.one");

                                                      foreach (Page page in oneFile)
                                                      {
                                                          Console.WriteLine("LastModifiedTime: {0}", page.LastModifiedTime);
                                                          Console.WriteLine("CreationTime: {0}", page.CreationTime);
                                                          Console.WriteLine("Title: {0}", page.Title);
                                                          Console.WriteLine("Level: {0}", page.Level);
                                                          Console.WriteLine("Author: {0}", page.Author);
                                                          Console.WriteLine();
                                                      }

When long OneNote pages are saved in pdf format they are split across pages. The sample shows how to configure the splitting logic of objects located on page's breaks.```csharp
// The path to the documents directory.
                                                                                                                                                                                  string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                                                                                                                  // Load the document into Aspose.Note.
                                                                                                                                                                                  Document doc = new Document(dataDir + "Aspose.one");

                                                                                                                                                                                  var pdfSaveOptions = new PdfSaveOptions();

                                                                                                                                                                                  pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(100);
                                                                                                                                                                                  // or
                                                                                                                                                                                  pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(400);

                                                                                                                                                                                  dataDir = dataDir + "PageSplittUsingKeepPartAndCloneSolidObjectToNextPageAlgorithm_out.pdf";
                                                                                                                                                                                  doc.Save(dataDir);

Shows how to save a document in png format.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                  // Load the document into Aspose.Note.
                                                  Document oneFile = new Document(dataDir + "Aspose.one");

                                                  // Initialize ImageSaveOptions object 
                                                  ImageSaveOptions opts = new ImageSaveOptions(SaveFormat.Png)
                                                                              {
                                                                                  // Set page index
                                                                                  PageIndex = 1
                                                                              };

                                                  dataDir = dataDir + "ConvertSpecificPageToImage_out.png";

                                                  // Save the document as PNG.
                                                  oneFile.Save(dataDir, opts);

Shows how to edit page's history.```csharp
// The path to the documents directory.
                                            string dataDir = RunExamples.GetDataDir_Pages();

                                            // Load OneNote document and get first child           
                                            Document document = new Document(dataDir + "Aspose.one");
                                            Page page = document.FirstChild;

                                            var pageHistory = document.GetPageHistory(page);

                                            pageHistory.RemoveRange(0, 1);

                                            pageHistory[0] = new Page(document);
                                            if (pageHistory.Count &gt; 1)
                                            {
                                                pageHistory[1].Title.TitleText.Text = "New Title";

                                                pageHistory.Add(new Page(document));

                                                pageHistory.Insert(1, new Page(document));

                                                document.Save(dataDir + "ModifyPageHistory_out.one");
                                            }

Shows how to check if a document is password-protected by specific password.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “Aspose.one”);

                                                                                   Document document;
                                                                                   if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
                                                                                   {
                                                                                       if (document != null)
                                                                                       {
                                                                                           Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
                                                                                       }
                                                                                       else
                                                                                       {
                                                                                           Console.WriteLine("The document is encrypted. Invalid password was provided.");
                                                                                       }
                                                                                   }
                                                                                   else
                                                                                   {
                                                                                       Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
                                                                                   }

Shows how to apply Dark theme style to a Document.```csharp
// The path to the documents directory.
                                                             string dataDir = RunExamples.GetDataDir_Text();

                                                             // Load the document into Aspose.Note.
                                                             Document doc = new Document(Path.Combine(dataDir, "Aspose.one"));

                                                             foreach (var page in doc)
                                                             {
                                                                 page.BackgroundColor = Color.Black;
                                                             }

                                                             foreach (var node in doc.GetChildNodes<richtext>())
                                                             {
                                                                 var c = node.ParagraphStyle.FontColor;
                                                                 if (c.IsEmpty || Math.Abs(c.R - Color.Black.R) + Math.Abs(c.G - Color.Black.G) + Math.Abs(c.B - Color.Black.B) &lt;= 30)
                                                                 {
                                                                     node.ParagraphStyle.FontColor = Color.White;
                                                                 }
                                                             }

                                                             doc.Save(Path.Combine(dataDir, "AsposeDarkTheme.pdf"));</richtext>

Shows how to pass through content of a notebook.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = “Open Notebook.onetoc2”; try { var notebook = new Notebook(dataDir + fileName); foreach (var notebookChildNode in notebook) { Console.WriteLine(notebookChildNode.DisplayName); if (notebookChildNode is Document) { // Do something with child document } else if (notebookChildNode is Notebook) { // Do something with child notebook } } } catch (Exception ex) { Console.WriteLine(ex.Message); }


Shows how to get an image from a document.```csharp
// The path to the documents directory.
                                                     string dataDir = RunExamples.GetDataDir_Images();

                                                     // Load the document into Aspose.Note.
                                                     Document oneFile = new Document(dataDir + "Aspose.one");

                                                     // Get all Image nodes
                                                     IList<aspose.note.image> nodes = oneFile.GetChildNodes<aspose.note.image>();

                                                     foreach (Aspose.Note.Image image in nodes)
                                                     {
                                                         using (MemoryStream stream = new MemoryStream(image.Bytes))
                                                         {
                                                             using (Bitmap bitMap = new Bitmap(stream))
                                                             {
                                                                 // Save image bytes to a file
                                                                 bitMap.Save(String.Format(dataDir + "{0}", Path.GetFileName(image.FileName)));
                                                             }
                                                         }
                                                     }</aspose.note.image></aspose.note.image>

Shows how to save a document in pdf format.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                  // Load the document into Aspose.Note.
                                                  Document oneFile = new Document(dataDir + "Aspose.one");

                                                  // Initialize PdfSaveOptions object
                                                  PdfSaveOptions opts = new PdfSaveOptions
                                                                            {
                                                                                // Set page index of first page to be saved
                                                                                PageIndex = 0,

                                                                                // Set page count
                                                                                PageCount = 1,
                                                                            };

                                                  // Save the document as PDF
                                                  dataDir = dataDir + "SaveRangeOfPagesAsPDF_out.pdf";
                                                  oneFile.Save(dataDir, opts);

Shows how to save a document in pdf format using specific settings.```csharp
// The path to the documents directory.
                                                                              string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                              // Load the document into Aspose.Note.
                                                                              Document doc = new Document(dataDir + "Aspose.one");

                                                                              // Initialize PdfSaveOptions object
                                                                              PdfSaveOptions opts = new PdfSaveOptions
                                                                                                        {
                                                                                                            // Use Jpeg compression
                                                                                                            ImageCompression = Saving.Pdf.PdfImageCompression.Jpeg,

                                                                                                            // Quality for JPEG compression
                                                                                                            JpegQuality = 90
                                                                                                        };

                                                                              dataDir = dataDir + "Document.SaveWithOptions_out.pdf";
                                                                              doc.Save(dataDir, opts);

Shows how to sent document to a printer using standard Windows dialog with specified options.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                                    var document = new Aspose.Note.Document(dataDir + "Aspose.one");

                                                                                                    var printerSettings = new PrinterSettings() { FromPage = 0, ToPage = 10 };
                                                                                                    printerSettings.DefaultPageSettings.Landscape = true;
                                                                                                    printerSettings.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(50, 50, 150, 50);

                                                                                                    document.Print(new PrintOptions()
                                                                                                                   {
                                                                                                                       PrinterSettings = printerSettings,
                                                                                                                       Resolution = 1200,
                                                                                                                       PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(),
                                                                                                                       DocumentName = "Test.one"
                                                                                                                   });

Shows how to get content of an attached file.```csharp
// The path to the documents directory.
                                                        string dataDir = RunExamples.GetDataDir_Attachments();

                                                        // Load the document into Aspose.Note.
                                                        Document oneFile = new Document(dataDir + "Sample1.one");

                                                        // Get a list of attached file nodes
                                                        IList<attachedfile> nodes = oneFile.GetChildNodes<attachedfile>();

                                                        // Iterate through all nodes
                                                        foreach (AttachedFile file in nodes)
                                                        {
                                                            // Load attached file to a stream object
                                                            using (Stream outputStream = new MemoryStream(file.Bytes))
                                                            {
                                                                // Create a local file
                                                                using (Stream fileStream = System.IO.File.OpenWrite(String.Format(dataDir + file.FileName)))
                                                                {
                                                                    // Copy file stream
                                                                    CopyStream(outputStream, fileStream);
                                                                }
                                                            }
                                                        }</attachedfile></attachedfile>

Shows how to get image’s meta information.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Images();

                                                 // Load the document into Aspose.Note.
                                                 Document oneFile = new Document(dataDir + "Aspose.one");

                                                 // Get all Image nodes
                                                 IList<aspose.note.image> images = oneFile.GetChildNodes<aspose.note.image>();

                                                 foreach (Aspose.Note.Image image in images)
                                                 {
                                                     Console.WriteLine("Width: {0}", image.Width);
                                                     Console.WriteLine("Height: {0}", image.Height);
                                                     Console.WriteLine("OriginalWidth: {0}", image.OriginalWidth);
                                                     Console.WriteLine("OriginalHeight: {0}", image.OriginalHeight);
                                                     Console.WriteLine("FileName: {0}", image.FileName);
                                                     Console.WriteLine("LastModifiedTime: {0}", image.LastModifiedTime);
                                                     Console.WriteLine();
                                                 }</aspose.note.image></aspose.note.image>

Shows how to get page's history.```csharp
// The path to the documents directory.
                                           string dataDir = RunExamples.GetDataDir_Pages();

                                           // Load OneNote document
                                           Document document = new Document(dataDir + "Aspose.one", new LoadOptions { LoadHistory = true });

                                           // Get first page
                                           Page firstPage = document.FirstChild;
                                           foreach (Page pageRevision in document.GetPageHistory(firstPage))
                                           {
                                               /*Use pageRevision like a regular page.*/
                                               Console.WriteLine("LastModifiedTime: {0}", pageRevision.LastModifiedTime);
                                               Console.WriteLine("CreationTime: {0}", pageRevision.CreationTime);
                                               Console.WriteLine("Title: {0}", pageRevision.Title);
                                               Console.WriteLine("Level: {0}", pageRevision.Level);
                                               Console.WriteLine("Author: {0}", pageRevision.Author);
                                               Console.WriteLine();
                                           }

Shows how to add a file to a document by using filepath.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Attachments();

                                                               // Create an object of the Document class
                                                               Document doc = new Document();

                                                               // Initialize Page class object
                                                               Aspose.Note.Page page = new Aspose.Note.Page(doc);

                                                               // Initialize Outline class object
                                                               Outline outline = new Outline(doc);

                                                               // Initialize OutlineElement class object
                                                               OutlineElement outlineElem = new OutlineElement(doc);

                                                               // Initialize AttachedFile class object
                                                               AttachedFile attachedFile = new AttachedFile(doc,  dataDir + "attachment.txt");

                                                               // Add attached file
                                                               outlineElem.AppendChildLast(attachedFile);

                                                               // Add outline element node
                                                               outline.AppendChildLast(outlineElem);

                                                               // Add outline node
                                                               page.AppendChildLast(outline);

                                                               // Add page node
                                                               doc.AppendChildLast(page);

                                                               dataDir = dataDir + "AttachFileByPath_out.one";
                                                               doc.Save(dataDir);

Shows how to create a document and save it in html format using default options.```csharp
// The path to the documents directory.
                                                                                           string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                           // Initialize OneNote document
                                                                                           Document doc = new Document();
                                                                                           Page page = doc.AppendChildLast(new Page());

                                                                                           // Default style for all text in the document.
                                                                                           ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
                                                                                           page.Title = new Title()
                                                                                                            {
                                                                                                                TitleText = new RichText() { Text = "Title text.", ParagraphStyle = textStyle },
                                                                                                                TitleDate = new RichText() { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
                                                                                                                TitleTime = new RichText() { Text = "12:34", ParagraphStyle = textStyle }
                                                                                                            };

                                                                                           // Save into HTML format
                                                                                           dataDir = dataDir + "CreateOneNoteDocAndSaveToHTML_out.html";
                                                                                           doc.Save(dataDir);

Shows how to check if a page is a conflict page(i.e. it has changes that OneNote couldn’t automatically merge).```csharp string dataDir = RunExamples.GetDataDir_Pages();

                                                                                                                      // Load OneNote document
                                                                                                                      Document doc = new Document(dataDir + "Aspose.one", new LoadOptions { LoadHistory = true });

                                                                                                                      var history = doc.GetPageHistory(doc.FirstChild);
                                                                                                                      for (int i = 0; i &lt; history.Count; i++)
                                                                                                                      {
                                                                                                                          var historyPage = history[i];
                                                                                                                          Console.Write("    {0}. Author: {1}, {2:dd.MM.yyyy hh.mm.ss}",
                                                                                                                                          i,
                                                                                                                                          historyPage.PageContentRevisionSummary.AuthorMostRecent,
                                                                                                                                          historyPage.PageContentRevisionSummary.LastModifiedTime);
                                                                                                                          Console.WriteLine(historyPage.IsConflictPage ? ", IsConflict: true" : string.Empty);

                                                                                                                          // By default conflict pages are just skipped on saving.
                                                                                                                          // If mark it as non-conflict then it will be saved as usual one in the history.
                                                                                                                          if (historyPage.IsConflictPage)
                                                                                                                              historyPage.IsConflictPage = false;
                                                                                                                      }

                                                                                                                      doc.Save(dataDir + "ConflictPageManipulation_out.one", SaveFormat.One);

Shows how to add an image from file to a document with user defined properties.```csharp
// The path to the documents directory.
                                                                                          string dataDir = RunExamples.GetDataDir_Images();

                                                                                          // Load document from the stream.
                                                                                          Document doc = new Document(dataDir + "Aspose.one");

                                                                                          // Get the first page of the document.
                                                                                          Aspose.Note.Page page = doc.FirstChild;

                                                                                          // Load an image from the file.
                                                                                          Aspose.Note.Image image = new Aspose.Note.Image(doc, dataDir + "image.jpg")
                                                                                                                    {
                                                                                                                        // Change the image's size according to your needs (optional).
                                                                                                                        Width = 100,
                                                                                                                        Height = 100,

                                                                                                                        // Set the image's location in the page (optional).
                                                                                                                        HorizontalOffset = 100,
                                                                                                                        VerticalOffset = 400,

                                                                                                                        // Set image alignment
                                                                                                                        Alignment = HorizontalAlignment.Right
                                                                                                                    };

                                                                                          // Add the image to the page.
                                                                                          page.AppendChildLast(image);

Shows how to add a file from a stream to a document.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Attachments();

                                                           // Create an object of the Document class
                                                           Document doc = new Document();

                                                           // Initialize Page class object
                                                           Aspose.Note.Page page = new Aspose.Note.Page(doc);

                                                           // Initialize Outline class object
                                                           Outline outline = new Outline(doc);

                                                           // Initialize OutlineElement class object
                                                           OutlineElement outlineElem = new OutlineElement(doc);

                                                           using (var stream = File.OpenRead(dataDir + "icon.jpg"))
                                                           {
                                                               // Initialize AttachedFile class object and also pass its icon path
                                                               AttachedFile attachedFile = new AttachedFile(doc, dataDir + "attachment.txt", stream, ImageFormat.Jpeg);

                                                               // Add attached file
                                                               outlineElem.AppendChildLast(attachedFile);
                                                           }

                                                           // Add outline element node
                                                           outline.AppendChildLast(outlineElem);

                                                           // Add outline node
                                                           page.AppendChildLast(outline);

                                                           // Add page node
                                                           doc.AppendChildLast(page);

                                                           dataDir = dataDir + "AttachFileAndSetIcon_out.one";
                                                           doc.Save(dataDir);

When long OneNote pages are saved in pdf format they are split across pages. The example shows how to configure the splitting logic of objects located on page's breaks.```csharp
// The path to the documents directory.
                                                                                                                                                                                   string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                                                                                                                   // Load the document into Aspose.Note.
                                                                                                                                                                                   Document doc = new Document(dataDir + "Aspose.one");
                                                                                                                                                                                   var pdfSaveOptions = new PdfSaveOptions();
                                                                                                                                                                                   pdfSaveOptions.PageSplittingAlgorithm = new AlwaysSplitObjectsAlgorithm();
                                                                                                                                                                                   // Or
                                                                                                                                                                                   pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm();
                                                                                                                                                                                   // Or
                                                                                                                                                                                   pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm();

                                                                                                                                                                                   float heightLimitOfClonedPart = 500;
                                                                                                                                                                                   pdfSaveOptions.PageSplittingAlgorithm = new KeepPartAndCloneSolidObjectToNextPageAlgorithm(heightLimitOfClonedPart);
                                                                                                                                                                                   // Or
                                                                                                                                                                                   pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(heightLimitOfClonedPart);

                                                                                                                                                                                   pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(100);
                                                                                                                                                                                   // Or
                                                                                                                                                                                   pdfSaveOptions.PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(400);

                                                                                                                                                                                   dataDir = dataDir + "UsingKeepSOlidObjectsAlgorithm_out.pdf";
                                                                                                                                                                                   doc.Save(dataDir);

Shows how to create a document and save in html format specified range of pages.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                       // Initialize OneNote document
                                                                                       Document doc = new Document();

                                                                                       Page page = doc.AppendChildLast(new Page());

                                                                                       // Default style for all text in the document.
                                                                                       ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
                                                                                       page.Title = new Title()
                                                                                                    {
                                                                                                        TitleText = new RichText() { Text = "Title text.", ParagraphStyle = textStyle },
                                                                                                        TitleDate = new RichText() { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
                                                                                                        TitleTime = new RichText() { Text = "12:34", ParagraphStyle = textStyle }
                                                                                                    };

                                                                                       // Save into HTML format
                                                                                       dataDir = dataDir + "CreateAndSavePageRange_out.html";
                                                                                       doc.Save(dataDir, new HtmlSaveOptions
                                                                                                         {
                                                                                                             PageCount = 1,
                                                                                                             PageIndex = 0
                                                                                                         });

Shows how to create a document with titled page.```csharp
// The path to the documents directory.
                                                           string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                           // Create an object of the Document class
                                                           Document doc = new Aspose.Note.Document();

                                                           // Initialize Page class object
                                                           Aspose.Note.Page page = new Aspose.Note.Page(doc);

                                                           // Default style for all text in the document.
                                                           ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };

                                                           // Set page title properties
                                                           page.Title = new Title(doc)
                                                                        {
                                                                            TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
                                                                            TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
                                                                            TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
                                                                        };

                                                           // Append Page node in the document
                                                           doc.AppendChildLast(page);

                                                           // Save OneNote document
                                                           dataDir = dataDir + "CreateDocWithPageTitle_out.one";
                                                           doc.Save(dataDir);

Shows how to add an image from stream to a document.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Images();

                                                           // Create an object of the Document class
                                                           Document doc = new Document();

                                                           // Initialize Page class object
                                                           Aspose.Note.Page page = new Aspose.Note.Page(doc);

                                                           Outline outline1 = new Outline(doc);
                                                           OutlineElement outlineElem1 = new OutlineElement(doc);

                                                           using (FileStream fs = File.OpenRead(dataDir + "image.jpg"))
                                                           {

                                                               // Load the second image using the image name, extension and stream.
                                                               Aspose.Note.Image image1 = new Aspose.Note.Image(doc, "Penguins.jpg", fs)
                                                                                              {
                                                                                                  // Set image alignment
                                                                                                  Alignment = HorizontalAlignment.Right
                                                                                              };

                                                               outlineElem1.AppendChildLast(image1);
                                                           }

                                                           outline1.AppendChildLast(outlineElem1);
                                                           page.AppendChildLast(outline1);

                                                           doc.AppendChildLast(page);

                                                           // Save OneNote document
                                                           dataDir = dataDir + "BuildDocAndInsertImageUsingImageStream_out.one";
                                                           doc.Save(dataDir);

Shows how to add an image from file to a document.```csharp
// The path to the documents directory.
                                                             string dataDir = RunExamples.GetDataDir_Images();

                                                             // Create an object of the Document class
                                                             Document doc = new Document();

                                                             // Initialize Page class object
                                                             Aspose.Note.Page page = new Aspose.Note.Page(doc);

                                                             // Initialize Outline class object and set offset properties
                                                             Outline outline = new Outline(doc);

                                                             // Initialize OutlineElement class object
                                                             OutlineElement outlineElem = new OutlineElement(doc);

                                                             // Load an image by the file path.
                                                             Aspose.Note.Image image = new Aspose.Note.Image(doc, dataDir + "image.jpg")
                                                                                       {
                                                                                           // Set image alignment
                                                                                           Alignment = HorizontalAlignment.Right
                                                                                       };

                                                             // Add image
                                                             outlineElem.AppendChildLast(image);

                                                             // Add outline elements
                                                             outline.AppendChildLast(outlineElem);

                                                             // Add Outline node
                                                             page.AppendChildLast(outline);

                                                             // Add Page node
                                                             doc.AppendChildLast(page);

                                                             // Save OneNote document
                                                             dataDir = dataDir + "BuildDocAndInsertImage_out.one";
                                                             doc.Save(dataDir);

Shows how to create a document with a text.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                  // Create an object of the Document class
                                                  Document doc = new Document();

                                                  // Initialize Page class object
                                                  Page page = new Page(doc);

                                                  // Initialize Outline class object
                                                  Outline outline = new Outline(doc);

                                                  // Initialize OutlineElement class object
                                                  OutlineElement outlineElem = new OutlineElement(doc);

                                                  // Initialize TextStyle class object and set formatting properties
                                                  ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };

                                                  // Initialize RichText class object and apply text style
                                                  RichText text = new RichText(doc) { Text = "Hello OneNote text!", ParagraphStyle = textStyle };

                                                  // Add RichText node
                                                  outlineElem.AppendChildLast(text);

                                                  // Add OutlineElement node
                                                  outline.AppendChildLast(outlineElem);

                                                  // Add Outline node
                                                  page.AppendChildLast(outline);

                                                  // Add Page node
                                                  doc.AppendChildLast(page);

                                                  // Save OneNote document
                                                  dataDir = dataDir + "CreateDocWithSimpleRichText_out.one";
                                                  doc.Save(dataDir);

Shows how to save a document in different formats.```csharp
// The path to the documents directory.
                                                             string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                             // Initialize the new Document
                                                             Document doc = new Document() { AutomaticLayoutChangesDetectionEnabled = false };

                                                             // Initialize the new Page
                                                             Aspose.Note.Page page = new Aspose.Note.Page(doc);

                                                             // Default style for all text in the document.
                                                             ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
                                                             page.Title = new Title(doc)
                                                                          {
                                                                              TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
                                                                              TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
                                                                              TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
                                                                          };

                                                             // Append page node
                                                             doc.AppendChildLast(page);

                                                             // Save OneNote document in different formats, set text font size and detect layout changes manually.
                                                             doc.Save(dataDir + "ConsequentExportOperations_out.html");            
                                                             doc.Save(dataDir + "ConsequentExportOperations_out.pdf");            
                                                             doc.Save(dataDir + "ConsequentExportOperations_out.jpg");            
                                                             textStyle.FontSize = 11;           
                                                             doc.DetectLayoutChanges();            
                                                             doc.Save(dataDir + "ConsequentExportOperations_out.bmp");

Shows how to save a document in html format with storing all resources(css/fonts/images) by using user-defined callbacks.```csharp // The code below creates ‘documentFolder’ folder containing document.html, ‘css’ folder with ‘style.css’ file, ‘images’ folder with images and ‘fonts’ folder with fonts. // ‘style.css’ file will contain at the end the following string “/* This line is appended to stream manually by user */” var savingCallbacks = new UserSavingCallbacks() { RootFolder = “documentFolder”, CssFolder = “css”, KeepCssStreamOpened = true, ImagesFolder = “images”, FontsFolder = “fonts” }; var options = new HtmlSaveOptions { FontFaceTypes = FontFaceType.Ttf, CssSavingCallback = savingCallbacks, FontSavingCallback = savingCallbacks, ImageSavingCallback = savingCallbacks };

                                                                                                                                if (!Directory.Exists(savingCallbacks.RootFolder))
                                                                                                                                {
                                                                                                                                    Directory.CreateDirectory(savingCallbacks.RootFolder);
                                                                                                                                }

                                                                                                                                string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                                                                                                var document = new Document(Path.Combine(dataDir, "Aspose.one"));

                                                                                                                                using (var stream = File.Create(Path.Combine(savingCallbacks.RootFolder, "document.html")))
                                                                                                                                {
                                                                                                                                    document.Save(stream, options);
                                                                                                                                }

                                                                                                                                using (var writer = new StreamWriter(savingCallbacks.CssStream))
                                                                                                                                {
                                                                                                                                    writer.WriteLine();
                                                                                                                                    writer.WriteLine("/* This line is appended to stream manually by user */");
                                                                                                                                }

Shows how to bind a hyperlink to a text.```csharp
// The path to the documents directory.
                                                   string dataDir = RunExamples.GetDataDir_Tasks();

                                                   // Create an object of the Document class
                                                   Document doc = new Document();

                                                   RichText titleText = new RichText() { ParagraphStyle = ParagraphStyle.Default }.Append("Title!");

                                                   Outline outline = new Outline()
                                                                         {
                                                                             MaxWidth = 200,
                                                                             MaxHeight = 200,
                                                                             VerticalOffset = 100,
                                                                             HorizontalOffset = 100
                                                                         };

                                                   TextStyle textStyleRed = new TextStyle
                                                                                {
                                                                                    FontColor = Color.Red,
                                                                                    FontName = "Arial",
                                                                                    FontSize = 10,
                                                                                };

                                                   TextStyle textStyleHyperlink = new TextStyle
                                                                                      {
                                                                                          IsHyperlink = true,
                                                                                          HyperlinkAddress = "www.google.com"
                                                                                      };

                                                   RichText text = new RichText() { ParagraphStyle = ParagraphStyle.Default }
                                                                       .Append("This is ", textStyleRed)
                                                                       .Append("hyperlink", textStyleHyperlink)
                                                                       .Append(". This text is not a hyperlink.", TextStyle.Default);

                                                   OutlineElement outlineElem = new OutlineElement();
                                                   outlineElem.AppendChildLast(text);

                                                   // Add outline elements
                                                   outline.AppendChildLast(outlineElem);

                                                   // Initialize Title class object
                                                   Title title = new Title() { TitleText = titleText };

                                                   // Initialize Page class object
                                                   Page page = new Note.Page() { Title = title };

                                                   // Add Outline node
                                                   page.AppendChildLast(outline);

                                                   // Add Page node
                                                   doc.AppendChildLast(page);

                                                   // Save OneNote document
                                                   dataDir = dataDir + "AddHyperlink_out.one";
                                                   doc.Save(dataDir);

Shows how to access content of a document using visitor.```csharp public static void Run() { // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                   // Open the document we want to convert.
                                                                   Document doc = new Document(dataDir + "Aspose.one");

                                                                   // Create an object that inherits from the DocumentVisitor class.
                                                                   MyOneNoteToTxtWriter myConverter = new MyOneNoteToTxtWriter();

                                                                   // This is the well known Visitor pattern. Get the model to accept a visitor.
                                                                   // The model will iterate through itself by calling the corresponding methods
                                                                   // on the visitor object (this is called visiting).
                                                                   //
                                                                   // Note that every node in the object model has the Accept method so the visiting
                                                                   // can be executed not only for the whole document, but for any node in the document.
                                                                   doc.Accept(myConverter);

                                                                   // Once the visiting is complete, we can retrieve the result of the operation,
                                                                   // that in this example, has accumulated in the visitor.
                                                                   Console.WriteLine(myConverter.GetText());
                                                                   Console.WriteLine(myConverter.NodeCount);            
                                                               }

                                                               /// <summary>
                                                               /// Simple implementation of saving a document in the plain text format. Implemented as a Visitor.
                                                               /// </summary>
                                                               public class MyOneNoteToTxtWriter : DocumentVisitor
                                                               {
                                                                   public MyOneNoteToTxtWriter()
                                                                   {
                                                                       nodecount = 0;
                                                                       mIsSkipText = false;
                                                                       mBuilder = new StringBuilder();
                                                                   }

                                                                   /// <summary>
                                                                   /// Gets the plain text of the document that was accumulated by the visitor.
                                                                   /// </summary>
                                                                   public string GetText()
                                                                   {
                                                                       return mBuilder.ToString();
                                                                   }

                                                                   /// <summary>
                                                                   /// Adds text to the current output. Honors the enabled/disabled output flag.
                                                                   /// </summary>
                                                                   private void AppendText(string text)
                                                                   {
                                                                       if (!mIsSkipText)
                                                                       {
                                                                           mBuilder.AppendLine(text);
                                                                       }
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a RichText node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitRichTextStart(RichText run)
                                                                   {
                                                                       ++nodecount;
                                                                       AppendText(run.Text);
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Document node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitDocumentStart(Document document)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Page node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitPageStart(Page page)
                                                                   {
                                                                       ++nodecount;
                                                                       this.AppendText($"*** Page '{page.Title?.TitleText?.Text ?? "(no title)"}' ***");
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when processing of a Page node is finished.
                                                                   /// </summary>
                                                                   public override void VisitPageEnd(Page page)
                                                                   {
                                                                       this.AppendText(string.Empty);
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Title node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitTitleStart(Title title)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Image node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitImageStart(Image image)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a OutlineGroup node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitOutlineGroupStart(OutlineGroup outlineGroup)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Outline node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitOutlineStart(Outline outline)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a OutlineElement node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitOutlineElementStart(OutlineElement outlineElement)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Gets the total count of nodes by the Visitor
                                                                   /// </summary>
                                                                   public Int32 NodeCount
                                                                   {
                                                                       get { return this.nodecount; }
                                                                   }

                                                                   private readonly StringBuilder mBuilder;
                                                                   private bool mIsSkipText;
                                                                   private Int32 nodecount;
                                                               }

## Constructors

### <a id="Aspose_Note_Document__ctor"></a> Document\(\)

Initializes a new instance of the Aspose.Note.Document class.
Creates a blank OneNote document.

```csharp
public Document()

Document(string)

Initializes a new instance of the Aspose.Note.Document class. Opens an existing OneNote document from a file.

public Document(string filePath)

Parameters

filePath string

The file path.

Exceptions

UnsupportedFileFormatException

The document format is not recognized or not supported.

FileCorruptedException

The document appears to be corrupted and cannot be loaded.

IncorrectPasswordException

The document is encrypted and requires a password to open, but you supplied an incorrect password.

InvalidOperationException

There is a problem with the document and it should be reported to Aspose.Note developers.

IOException

There is an input/output exception.

Document(string, LoadOptions)

Initializes a new instance of the Aspose.Note.Document class. Opens an existing OneNote document from a file. Allows to specify additional options such as an encryption password.

public Document(string filePath, LoadOptions loadOptions)

Parameters

filePath string

The file path.

loadOptions LoadOptions

Options used to load a document. Can be null.

Exceptions

UnsupportedFileFormatException

The document format is not recognized or not supported.

FileCorruptedException

The document appears to be corrupted and cannot be loaded.

IncorrectPasswordException

The document is encrypted and requires a password to open, but you supplied an incorrect password.

InvalidOperationException

There is a problem with the document and it should be reported to Aspose.Note developers.

IOException

There is an input/output exception.

Document(Stream)

Initializes a new instance of the Aspose.Note.Document class. Opens an existing OneNote document from a stream.

public Document(Stream inStream)

Parameters

inStream Stream

The stream.

Exceptions

UnsupportedFileFormatException

The document format is not recognized or not supported.

FileCorruptedException

The document appears to be corrupted and cannot be loaded.

IncorrectPasswordException

The document is encrypted and requires a password to open, but you supplied an incorrect password.

InvalidOperationException

There is a problem with the document and it should be reported to Aspose.Note developers.

IOException

There is an input/output exception.

ArgumentException

The stream does not support reading, is null, or is already closed.

Document(Stream, LoadOptions)

Initializes a new instance of the Aspose.Note.Document class. Opens an existing OneNote document from a stream. Allows to specify additional options such as an encryption password.

public Document(Stream inStream, LoadOptions loadOptions)

Parameters

inStream Stream

The stream.

loadOptions LoadOptions

Options used to load a document. Can be null.

Exceptions

UnsupportedFileFormatException

The document format is not recognized or not supported.

FileCorruptedException

The document appears to be corrupted and cannot be loaded.

IncorrectPasswordException

The document is encrypted and requires a password to open, but you supplied an incorrect password.

InvalidOperationException

There is a problem with the document and it should be reported to Aspose.Note developers.

IOException

There is an input/output exception.

ArgumentException

The stream does not support reading, is null, or is already closed.

Properties

AutomaticLayoutChangesDetectionEnabled

Gets or sets a value indicating whether Aspose.Note performs detection of layout changes automatically. Default value is true.

public bool AutomaticLayoutChangesDetectionEnabled { get; set; }

Property Value

bool

Examples

Shows how to save a document in different formats.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                         // Initialize the new Document
                                                         Document doc = new Document() { AutomaticLayoutChangesDetectionEnabled = false };

                                                         // Initialize the new Page
                                                         Aspose.Note.Page page = new Aspose.Note.Page(doc);

                                                         // Default style for all text in the document.
                                                         ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
                                                         page.Title = new Title(doc)
                                                                      {
                                                                          TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
                                                                          TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
                                                                          TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
                                                                      };

                                                         // Append page node
                                                         doc.AppendChildLast(page);

                                                         // Save OneNote document in different formats, set text font size and detect layout changes manually.
                                                         doc.Save(dataDir + "ConsequentExportOperations_out.html");            
                                                         doc.Save(dataDir + "ConsequentExportOperations_out.pdf");            
                                                         doc.Save(dataDir + "ConsequentExportOperations_out.jpg");            
                                                         textStyle.FontSize = 11;           
                                                         doc.DetectLayoutChanges();            
                                                         doc.Save(dataDir + "ConsequentExportOperations_out.bmp");

### <a id="Aspose_Note_Document_Color"></a> Color

Gets or sets the color.

```csharp
public Color Color { get; set; }

Property Value

Color

CreationTime

Gets or sets the creation time.

public DateTime CreationTime { get; set; }

Property Value

DateTime

DisplayName

Gets or sets the display name.

public string DisplayName { get; set; }

Property Value

string

FileFormat

Gets file format (OneNote 2010, OneNote Online).

public FileFormat FileFormat { get; }

Property Value

FileFormat

Examples

Shows how to get file format of a document.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                  var document = new Aspose.Note.Document(dataDir + "Aspose.one");
                                                  switch (document.FileFormat)
                                                  {
                                                      case FileFormat.OneNote2010:
                                                          // Process OneNote 2010
                                                          break;
                                                      case FileFormat.OneNoteOnline:
                                                          // Process OneNote Online
                                                          break;
                                                  }

### <a id="Aspose_Note_Document_Guid"></a> Guid

Gets the object's globally unique id.

```csharp
public Guid Guid { get; }

Property Value

Guid

Methods

Accept(DocumentVisitor)

Accepts the visitor of the node.

public override void Accept(DocumentVisitor visitor)

Parameters

visitor DocumentVisitor

The object of a class derived from the Aspose.Note.DocumentVisitor.

Examples

Shows how to access content of a document using visitor.```csharp public static void Run() { // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                   // Open the document we want to convert.
                                                                   Document doc = new Document(dataDir + "Aspose.one");

                                                                   // Create an object that inherits from the DocumentVisitor class.
                                                                   MyOneNoteToTxtWriter myConverter = new MyOneNoteToTxtWriter();

                                                                   // This is the well known Visitor pattern. Get the model to accept a visitor.
                                                                   // The model will iterate through itself by calling the corresponding methods
                                                                   // on the visitor object (this is called visiting).
                                                                   //
                                                                   // Note that every node in the object model has the Accept method so the visiting
                                                                   // can be executed not only for the whole document, but for any node in the document.
                                                                   doc.Accept(myConverter);

                                                                   // Once the visiting is complete, we can retrieve the result of the operation,
                                                                   // that in this example, has accumulated in the visitor.
                                                                   Console.WriteLine(myConverter.GetText());
                                                                   Console.WriteLine(myConverter.NodeCount);            
                                                               }

                                                               /// <summary>
                                                               /// Simple implementation of saving a document in the plain text format. Implemented as a Visitor.
                                                               /// </summary>
                                                               public class MyOneNoteToTxtWriter : DocumentVisitor
                                                               {
                                                                   public MyOneNoteToTxtWriter()
                                                                   {
                                                                       nodecount = 0;
                                                                       mIsSkipText = false;
                                                                       mBuilder = new StringBuilder();
                                                                   }

                                                                   /// <summary>
                                                                   /// Gets the plain text of the document that was accumulated by the visitor.
                                                                   /// </summary>
                                                                   public string GetText()
                                                                   {
                                                                       return mBuilder.ToString();
                                                                   }

                                                                   /// <summary>
                                                                   /// Adds text to the current output. Honors the enabled/disabled output flag.
                                                                   /// </summary>
                                                                   private void AppendText(string text)
                                                                   {
                                                                       if (!mIsSkipText)
                                                                       {
                                                                           mBuilder.AppendLine(text);
                                                                       }
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a RichText node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitRichTextStart(RichText run)
                                                                   {
                                                                       ++nodecount;
                                                                       AppendText(run.Text);
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Document node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitDocumentStart(Document document)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Page node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitPageStart(Page page)
                                                                   {
                                                                       ++nodecount;
                                                                       this.AppendText($"*** Page '{page.Title?.TitleText?.Text ?? "(no title)"}' ***");
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when processing of a Page node is finished.
                                                                   /// </summary>
                                                                   public override void VisitPageEnd(Page page)
                                                                   {
                                                                       this.AppendText(string.Empty);
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Title node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitTitleStart(Title title)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Image node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitImageStart(Image image)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a OutlineGroup node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitOutlineGroupStart(OutlineGroup outlineGroup)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a Outline node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitOutlineStart(Outline outline)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Called when a OutlineElement node is encountered in the document.
                                                                   /// </summary>
                                                                   public override void VisitOutlineElementStart(OutlineElement outlineElement)
                                                                   {
                                                                       ++nodecount;
                                                                   }

                                                                   /// <summary>
                                                                   /// Gets the total count of nodes by the Visitor
                                                                   /// </summary>
                                                                   public Int32 NodeCount
                                                                   {
                                                                       get { return this.nodecount; }
                                                                   }

                                                                   private readonly StringBuilder mBuilder;
                                                                   private bool mIsSkipText;
                                                                   private Int32 nodecount;
                                                               }

### <a id="Aspose_Note_Document_DetectLayoutChanges"></a> DetectLayoutChanges\(\)

Detects all changes made to the document layout since the previous Aspose.Note.Document.DetectLayoutChanges call.
In case Aspose.Note.Document.AutomaticLayoutChangesDetectionEnabled set to true, used automatically in the beginning of document export.

```csharp
public void DetectLayoutChanges()

Examples

Shows how to save a document in different formats.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                         // Initialize the new Document
                                                         Document doc = new Document() { AutomaticLayoutChangesDetectionEnabled = false };

                                                         // Initialize the new Page
                                                         Aspose.Note.Page page = new Aspose.Note.Page(doc);

                                                         // Default style for all text in the document.
                                                         ParagraphStyle textStyle = new ParagraphStyle { FontColor = Color.Black, FontName = "Arial", FontSize = 10 };
                                                         page.Title = new Title(doc)
                                                                      {
                                                                          TitleText = new RichText(doc) { Text = "Title text.", ParagraphStyle = textStyle },
                                                                          TitleDate = new RichText(doc) { Text = new DateTime(2011, 11, 11).ToString("D", CultureInfo.InvariantCulture), ParagraphStyle = textStyle },
                                                                          TitleTime = new RichText(doc) { Text = "12:34", ParagraphStyle = textStyle }
                                                                      };

                                                         // Append page node
                                                         doc.AppendChildLast(page);

                                                         // Save OneNote document in different formats, set text font size and detect layout changes manually.
                                                         doc.Save(dataDir + "ConsequentExportOperations_out.html");            
                                                         doc.Save(dataDir + "ConsequentExportOperations_out.pdf");            
                                                         doc.Save(dataDir + "ConsequentExportOperations_out.jpg");            
                                                         textStyle.FontSize = 11;           
                                                         doc.DetectLayoutChanges();            
                                                         doc.Save(dataDir + "ConsequentExportOperations_out.bmp");

### <a id="Aspose_Note_Document_GetPageHistory_Aspose_Note_Page_"></a> GetPageHistory\(Page\)

Gets the Aspose.Note.PageHistory which contains full history for each page presented in a document (the earliest at index 0).
The current page revision can be accessed as Aspose.Note.PageHistory.Current and contained separately from collection of historical versions.

```csharp
public PageHistory GetPageHistory(Page page)

Parameters

page Page

The current revision of a page.

Returns

PageHistory

The Aspose.Note.PageHistory.

Examples

Shows how to restore previous version of a page.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Pages();

                                                       // Load OneNote document and get first child           
                                                       Document document = new Document(dataDir + "Aspose.one");
                                                       Page page = document.FirstChild;           
                                                       Page previousPageVersion = document.GetPageHistory(page).Last();

                                                       document.RemoveChild(page);
                                                       document.AppendChildLast(previousPageVersion);

                                                       document.Save(dataDir + "RollBackRevisions_out.one");

Shows how to edit page's history.```csharp
// The path to the documents directory.
                                            string dataDir = RunExamples.GetDataDir_Pages();

                                            // Load OneNote document and get first child           
                                            Document document = new Document(dataDir + "Aspose.one");
                                            Page page = document.FirstChild;

                                            var pageHistory = document.GetPageHistory(page);

                                            pageHistory.RemoveRange(0, 1);

                                            pageHistory[0] = new Page(document);
                                            if (pageHistory.Count &gt; 1)
                                            {
                                                pageHistory[1].Title.TitleText.Text = "New Title";

                                                pageHistory.Add(new Page(document));

                                                pageHistory.Insert(1, new Page(document));

                                                document.Save(dataDir + "ModifyPageHistory_out.one");
                                            }

Shows how to check if a page is a conflict page(i.e. it has changes that OneNote couldn’t automatically merge).```csharp string dataDir = RunExamples.GetDataDir_Pages();

                                                                                                                      // Load OneNote document
                                                                                                                      Document doc = new Document(dataDir + "Aspose.one", new LoadOptions { LoadHistory = true });

                                                                                                                      var history = doc.GetPageHistory(doc.FirstChild);
                                                                                                                      for (int i = 0; i &lt; history.Count; i++)
                                                                                                                      {
                                                                                                                          var historyPage = history[i];
                                                                                                                          Console.Write("    {0}. Author: {1}, {2:dd.MM.yyyy hh.mm.ss}",
                                                                                                                                          i,
                                                                                                                                          historyPage.PageContentRevisionSummary.AuthorMostRecent,
                                                                                                                                          historyPage.PageContentRevisionSummary.LastModifiedTime);
                                                                                                                          Console.WriteLine(historyPage.IsConflictPage ? ", IsConflict: true" : string.Empty);

                                                                                                                          // By default conflict pages are just skipped on saving.
                                                                                                                          // If mark it as non-conflict then it will be saved as usual one in the history.
                                                                                                                          if (historyPage.IsConflictPage)
                                                                                                                              historyPage.IsConflictPage = false;
                                                                                                                      }

                                                                                                                      doc.Save(dataDir + "ConflictPageManipulation_out.one", SaveFormat.One);

### <a id="Aspose_Note_Document_Import_System_IO_Stream_Aspose_Note_Importing_PdfImportOptions_Aspose_Note_MergeOptions_"></a> Import\(Stream, PdfImportOptions, MergeOptions\)

Imports a set of pages from provided PDF document.

```csharp
public Document Import(Stream stream, PdfImportOptions importOptions = null, MergeOptions mergeOptions = null)

Parameters

stream Stream

A stream with PDF document.

importOptions PdfImportOptions

Specifies the options how to import pages from PDF document.

mergeOptions MergeOptions

Specifies the options how to merge provided pages.

Returns

Document

Returns the reference to the document.

Import(string, PdfImportOptions, MergeOptions)

Imports a set of pages from provided PDF document.

public Document Import(string file, PdfImportOptions importOptions = null, MergeOptions mergeOptions = null)

Parameters

file string

A file with PDF document.

importOptions PdfImportOptions

Specifies the options how to import pages from PDF document.

mergeOptions MergeOptions

Specifies the options how to merge provided pages.

Returns

Document

Returns the reference to the document.

Examples

Shows how to import all pages from a set of PDF documents page by page.```csharp string dataDir = RunExamples.GetDataDir_Import();

                                                                              var d = new Document();

                                                                              d.Import(Path.Combine(dataDir, "sampleText.pdf"))
                                                                               .Import(Path.Combine(dataDir, "sampleImage.pdf"))
                                                                               .Import(Path.Combine(dataDir, "sampleTable.pdf"));

                                                                              d.Save(Path.Combine(dataDir, "sample_SimpleMerge.one"));

Shows how to import all pages from a set of PDF documents while inserting pages from every PDF document as children of a top level OneNote page.```csharp
string dataDir = RunExamples.GetDataDir_Import();

                                                                                                                                                           var d = new Document();

                                                                                                                                                           foreach (var file in new[] { "sampleText.pdf", "sampleImage.pdf", "sampleTable.pdf" })
                                                                                                                                                           {
                                                                                                                                                               d.AppendChildLast(new Page()).Title = new Title() { TitleText = new RichText() { ParagraphStyle = ParagraphStyle.Default }.Append(file) };
                                                                                                                                                               d.Import(Path.Combine(dataDir, file), new PdfImportOptions(), new MergeOptions() { InsertAt = int.MaxValue, InsertAsChild = true });
                                                                                                                                                           }

                                                                                                                                                           d.Save(Path.Combine(dataDir, "sample_StructuredMerge.one"));

Shows how to import all content from a set of PDF documents while merging pages from every PDF document to a single OneNote page.```csharp string dataDir = RunExamples.GetDataDir_Import();

                                                                                                                                        var d = new Document();

                                                                                                                                        var importOptions = new PdfImportOptions();
                                                                                                                                        var mergeOptions = new MergeOptions() { ImportAsSinglePage = true, PageSpacing = 100 };

                                                                                                                                        d.Import(Path.Combine(dataDir, "sampleText.pdf"), importOptions, mergeOptions)
                                                                                                                                         .Import(Path.Combine(dataDir, "sampleImage.pdf"), importOptions, mergeOptions)
                                                                                                                                         .Import(Path.Combine(dataDir, "sampleTable.pdf"), importOptions, mergeOptions);

                                                                                                                                        d.Save(Path.Combine(dataDir, "sample_SinglePageMerge.one"));

### <a id="Aspose_Note_Document_Import_System_IO_Stream_Aspose_Note_Importing_HtmlImportOptions_Aspose_Note_MergeOptions_"></a> Import\(Stream, HtmlImportOptions, MergeOptions\)

Imports a set of pages from provided HTML document.

```csharp
public Document Import(Stream stream, HtmlImportOptions importOptions, MergeOptions mergeOptions = null)

Parameters

stream Stream

A stream with HTML document.

importOptions HtmlImportOptions

Specifies the options how to import pages from HTML document.

mergeOptions MergeOptions

Specifies the options how to merge provided pages.

Returns

Document

Returns the reference to the document.

Import(string, HtmlImportOptions, MergeOptions)

Imports a set of pages from provided HTML document.

public Document Import(string file, HtmlImportOptions importOptions, MergeOptions mergeOptions = null)

Parameters

file string

A file with HTML document.

importOptions HtmlImportOptions

Specifies the options how to import pages from HTML document.

mergeOptions MergeOptions

Specifies the options how to merge provided pages.

Returns

Document

Returns the reference to the document.

IsEncrypted(Stream, LoadOptions, out Document)

Checks whether a document from a stream is encrypted. To check it we need to completely load this document. So this method can lead to performance penalty.

public static bool IsEncrypted(Stream stream, LoadOptions options, out Document document)

Parameters

stream Stream

The stream.

options LoadOptions

The load options.

document Document

The loaded document.

Returns

bool

Returns true if the document is encrypted otherwise false.

Examples

Shows how to check if a document is password-protected.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “Aspose.one”);

                                                              Document document;
                                                              if (!Document.IsEncrypted(fileName, out document))
                                                              {
                                                                  Console.WriteLine("The document is loaded and ready to be processed.");
                                                              }
                                                              else
                                                              {
                                                                  Console.WriteLine("The document is encrypted. Provide a password.");
                                                              }

Shows how to check if a document is password-protected by specific password.```csharp
// The path to the documents directory.
                                                                                       string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                                                       string fileName = Path.Combine(dataDir, "Aspose.one");

                                                                                       Document document;
                                                                                       if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
                                                                                       {
                                                                                           if (document != null)
                                                                                           {
                                                                                               Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
                                                                                           }
                                                                                           else
                                                                                           {
                                                                                               Console.WriteLine("The document is encrypted. Invalid password was provided.");
                                                                                           }
                                                                                       }
                                                                                       else
                                                                                       {
                                                                                           Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
                                                                                       }

IsEncrypted(Stream, string, out Document)

Checks whether a document from a stream is encrypted. To check it we need to completely load this document. So this method can lead to performance penalty.

public static bool IsEncrypted(Stream stream, string password, out Document document)

Parameters

stream Stream

The stream.

password string

The password to decrypt a document.

document Document

The loaded document.

Returns

bool

Returns true if the document is encrypted otherwise false.

Examples

Shows how to check if a document is password-protected.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “Aspose.one”);

                                                              Document document;
                                                              if (!Document.IsEncrypted(fileName, out document))
                                                              {
                                                                  Console.WriteLine("The document is loaded and ready to be processed.");
                                                              }
                                                              else
                                                              {
                                                                  Console.WriteLine("The document is encrypted. Provide a password.");
                                                              }

Shows how to check if a document is password-protected by specific password.```csharp
// The path to the documents directory.
                                                                                       string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                                                       string fileName = Path.Combine(dataDir, "Aspose.one");

                                                                                       Document document;
                                                                                       if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
                                                                                       {
                                                                                           if (document != null)
                                                                                           {
                                                                                               Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
                                                                                           }
                                                                                           else
                                                                                           {
                                                                                               Console.WriteLine("The document is encrypted. Invalid password was provided.");
                                                                                           }
                                                                                       }
                                                                                       else
                                                                                       {
                                                                                           Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
                                                                                       }

IsEncrypted(Stream, out Document)

Checks whether a document from a stream is encrypted. To check it we need to completely load this document. So this method can lead to performance penalty.

public static bool IsEncrypted(Stream stream, out Document document)

Parameters

stream Stream

The stream.

document Document

The loaded document.

Returns

bool

Returns true if the document is encrypted otherwise false.

Examples

Shows how to check if a document is password-protected.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “Aspose.one”);

                                                              Document document;
                                                              if (!Document.IsEncrypted(fileName, out document))
                                                              {
                                                                  Console.WriteLine("The document is loaded and ready to be processed.");
                                                              }
                                                              else
                                                              {
                                                                  Console.WriteLine("The document is encrypted. Provide a password.");
                                                              }

Shows how to check if a document is password-protected by specific password.```csharp
// The path to the documents directory.
                                                                                       string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                                                       string fileName = Path.Combine(dataDir, "Aspose.one");

                                                                                       Document document;
                                                                                       if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
                                                                                       {
                                                                                           if (document != null)
                                                                                           {
                                                                                               Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
                                                                                           }
                                                                                           else
                                                                                           {
                                                                                               Console.WriteLine("The document is encrypted. Invalid password was provided.");
                                                                                           }
                                                                                       }
                                                                                       else
                                                                                       {
                                                                                           Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
                                                                                       }

IsEncrypted(string, LoadOptions, out Document)

Checks whether a document from a file is encrypted. To check it we need to completely load this document. So this method can lead to performance penalty.

public static bool IsEncrypted(string filePath, LoadOptions options, out Document document)

Parameters

filePath string

The file path.

options LoadOptions

The load options.

document Document

The loaded document.

Returns

bool

Returns true if the document is encrypted otherwise false.

Examples

Shows how to check if a document is password-protected.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “Aspose.one”);

                                                              Document document;
                                                              if (!Document.IsEncrypted(fileName, out document))
                                                              {
                                                                  Console.WriteLine("The document is loaded and ready to be processed.");
                                                              }
                                                              else
                                                              {
                                                                  Console.WriteLine("The document is encrypted. Provide a password.");
                                                              }

Shows how to check if a document is password-protected by specific password.```csharp
// The path to the documents directory.
                                                                                       string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                                                       string fileName = Path.Combine(dataDir, "Aspose.one");

                                                                                       Document document;
                                                                                       if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
                                                                                       {
                                                                                           if (document != null)
                                                                                           {
                                                                                               Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
                                                                                           }
                                                                                           else
                                                                                           {
                                                                                               Console.WriteLine("The document is encrypted. Invalid password was provided.");
                                                                                           }
                                                                                       }
                                                                                       else
                                                                                       {
                                                                                           Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
                                                                                       }

IsEncrypted(string, out Document)

Checks whether a document from a file is encrypted. To check it we need to completely load this document. So this method can lead to performance penalty.

public static bool IsEncrypted(string filePath, out Document document)

Parameters

filePath string

The file path.

document Document

The loaded document.

Returns

bool

Returns true if the document is encrypted otherwise false.

Examples

Shows how to check if a document is password-protected.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “Aspose.one”);

                                                              Document document;
                                                              if (!Document.IsEncrypted(fileName, out document))
                                                              {
                                                                  Console.WriteLine("The document is loaded and ready to be processed.");
                                                              }
                                                              else
                                                              {
                                                                  Console.WriteLine("The document is encrypted. Provide a password.");
                                                              }

Shows how to check if a document is password-protected by specific password.```csharp
// The path to the documents directory.
                                                                                       string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                                                       string fileName = Path.Combine(dataDir, "Aspose.one");

                                                                                       Document document;
                                                                                       if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
                                                                                       {
                                                                                           if (document != null)
                                                                                           {
                                                                                               Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
                                                                                           }
                                                                                           else
                                                                                           {
                                                                                               Console.WriteLine("The document is encrypted. Invalid password was provided.");
                                                                                           }
                                                                                       }
                                                                                       else
                                                                                       {
                                                                                           Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
                                                                                       }

IsEncrypted(string, string, out Document)

Checks whether a document from a file is encrypted. To check it we need to completely load this document. So this method can lead to performance penalty.

public static bool IsEncrypted(string filePath, string password, out Document document)

Parameters

filePath string

The file path.

password string

The password to decrypt a document.

document Document

The loaded document.

Returns

bool

Returns true if the document is encrypted otherwise false.

Examples

Shows how to check if a document is password-protected.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string fileName = Path.Combine(dataDir, “Aspose.one”);

                                                              Document document;
                                                              if (!Document.IsEncrypted(fileName, out document))
                                                              {
                                                                  Console.WriteLine("The document is loaded and ready to be processed.");
                                                              }
                                                              else
                                                              {
                                                                  Console.WriteLine("The document is encrypted. Provide a password.");
                                                              }

Shows how to check if a document is password-protected by specific password.```csharp
// The path to the documents directory.
                                                                                       string dataDir = RunExamples.GetDataDir_LoadingAndSaving();
                                                                                       string fileName = Path.Combine(dataDir, "Aspose.one");

                                                                                       Document document;
                                                                                       if (Document.IsEncrypted(fileName, "VerySecretPassword", out document))
                                                                                       {
                                                                                           if (document != null)
                                                                                           {
                                                                                               Console.WriteLine("The document is decrypted. It is loaded and ready to be processed.");
                                                                                           }
                                                                                           else
                                                                                           {
                                                                                               Console.WriteLine("The document is encrypted. Invalid password was provided.");
                                                                                           }
                                                                                       }
                                                                                       else
                                                                                       {
                                                                                           Console.WriteLine("The document is NOT encrypted. It is loaded and ready to be processed.");
                                                                                       }

Merge(IEnumerable<page>, MergeOptions)

Merges a set of pages to the document.

public Document Merge(IEnumerable<page> pages, MergeOptions mergeOptions = null)

Parameters

pages IEnumerable<Page&gt;

A set of pages.

mergeOptions MergeOptions

Specifies the options how to merge provided pages.

Returns

Document

Returns the reference to the document.

Examples

Shows how to import all pages from PDF document grouping every 5 pages to a single OneNote page.```csharp string dataDir = RunExamples.GetDataDir_Import();

                                                                                                       var d = new Document();

                                                                                                       var mergeOptions = new MergeOptions() { ImportAsSinglePage = true, PageSpacing = 100 };

                                                                                                       IEnumerable<page> pages = PdfImporter.Import(Path.Combine(dataDir, "SampleGrouping.pdf"));
                                                                                                       while (pages.Any())
                                                                                                       {
                                                                                                           d.Merge(pages.Take(5), mergeOptions);
                                                                                                           pages = pages.Skip(5);
                                                                                                       }

                                                                                                       d.Save(Path.Combine(dataDir, "sample_CustomMerge.one"));</page>

### <a id="Aspose_Note_Document_Print"></a> Print\(\)

Prints the document using the default printer.

```csharp
public void Print()

Examples

Shows how to sent document to a printer using standard Windows dialog with default options.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                                  var document = new Aspose.Note.Document(dataDir + "Aspose.one");

                                                                                                  document.Print();

Shows how to sent document to a printer using standard Windows dialog with specified options.```csharp
// The path to the documents directory.
                                                                                                        string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                                        var document = new Aspose.Note.Document(dataDir + "Aspose.one");

                                                                                                        var printerSettings = new PrinterSettings() { FromPage = 0, ToPage = 10 };
                                                                                                        printerSettings.DefaultPageSettings.Landscape = true;
                                                                                                        printerSettings.DefaultPageSettings.Margins = new System.Drawing.Printing.Margins(50, 50, 150, 50);

                                                                                                        document.Print(new PrintOptions()
                                                                                                                       {
                                                                                                                           PrinterSettings = printerSettings,
                                                                                                                           Resolution = 1200,
                                                                                                                           PageSplittingAlgorithm = new KeepSolidObjectsAlgorithm(),
                                                                                                                           DocumentName = "Test.one"
                                                                                                                       });

Print(PrintOptions)

Prints the document using the default printer.

public void Print(PrintOptions options)

Parameters

options PrintOptions

Options used to print a document. Can be null.

Save(string)

Saves the OneNote document to a file.

public void Save(string fileName)

Parameters

fileName string

The full name for the file. If a file with the specified full name already exists, the existing file is overwritten.

Examples

Shows how to save a document.```csharp string inputFile = “Sample1.one”; string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string outputFile = “SaveDocToOneNoteFormat_out.one”;

                                    Document doc = new Document(dataDir + inputFile);
                                    doc.Save(dataDir + outputFile);

#### Exceptions

 [IncorrectDocumentStructureException](/note/aspose.note.incorrectdocumentstructureexception)

The document structure violates specification.

 [UnsupportedSaveFormatException](/note/aspose.note.unsupportedsaveformatexception)

Requested save format is not supported.

### <a id="Aspose_Note_Document_Save_System_IO_Stream_"></a> Save\(Stream\)

Saves the OneNote document to a stream.

```csharp
public void Save(Stream stream)

Parameters

stream Stream

The System.IO.Stream where the document will be saved.

Exceptions

IncorrectDocumentStructureException

The document structure violates specification.

UnsupportedSaveFormatException

Requested save format is not supported.

Save(string, SaveFormat)

Saves the OneNote document to a file in the specified format.

public void Save(string fileName, SaveFormat format)

Parameters

fileName string

The full name for the file. If a file with the specified full name already exists, the existing file is overwritten.

format SaveFormat

The format in which to save the document.

Examples

Shows how to save a document using SaveFormat enumeration.```csharp string inputFile = “Sample1.one”; string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string outputFile = “SaveDocToOneNoteFormatUsingSaveFormat_out.one”;

                                                                 Document document = new Document(dataDir + inputFile);

                                                                 document.Save(dataDir + outputFile, SaveFormat.One);

Shows how to save a document in gif format.```csharp
// The path to the documents directory.
                                                      string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                      // Load the document into Aspose.Note.
                                                      Document oneFile = new Document(dataDir + "Aspose.one");

                                                      dataDir = dataDir + "SaveToImageDefaultOptions_out.gif";

                                                      // Save the document as gif.
                                                      oneFile.Save(dataDir, SaveFormat.Gif);

Exceptions

IncorrectDocumentStructureException

The document structure violates specification.

UnsupportedSaveFormatException

Requested save format is not supported.

Save(Stream, SaveFormat)

Saves the OneNote document to a stream in the specified format.

public void Save(Stream stream, SaveFormat format)

Parameters

stream Stream

The System.IO.Stream where the document will be saved.

format SaveFormat

The format in which to save the document.

Examples

Shows how to save a document in pdf format using default settings.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                         // Load the document into Aspose.Note.
                                                                         Document oneFile = new Document(dataDir + "Aspose.one");

                                                                         // Save the document as PDF
                                                                         dataDir = dataDir + "SaveWithDefaultSettings_out.pdf";
                                                                         oneFile.Save(dataDir, SaveFormat.Pdf);

Shows how to save a document to a stream.```csharp
// The path to the documents directory.
                                                    string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                    // Load the document into Aspose.Note.
                                                    Document doc = new Document(dataDir + "Aspose.one");

                                                    MemoryStream dstStream = new MemoryStream();
                                                    doc.Save(dstStream, SaveFormat.Pdf);

                                                    // Rewind the stream position back to zero so it is ready for next reader.
                                                    dstStream.Seek(0, SeekOrigin.Begin);

Shows how to apply Dark theme style to a Document.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_Text();

                                                         // Load the document into Aspose.Note.
                                                         Document doc = new Document(Path.Combine(dataDir, "Aspose.one"));

                                                         foreach (var page in doc)
                                                         {
                                                             page.BackgroundColor = Color.Black;
                                                         }

                                                         foreach (var node in doc.GetChildNodes<richtext>())
                                                         {
                                                             var c = node.ParagraphStyle.FontColor;
                                                             if (c.IsEmpty || Math.Abs(c.R - Color.Black.R) + Math.Abs(c.G - Color.Black.G) + Math.Abs(c.B - Color.Black.B) &lt;= 30)
                                                             {
                                                                 node.ParagraphStyle.FontColor = Color.White;
                                                             }
                                                         }

                                                         doc.Save(Path.Combine(dataDir, "AsposeDarkTheme.pdf"));</richtext>

#### Exceptions

 [IncorrectDocumentStructureException](/note/aspose.note.incorrectdocumentstructureexception)

The document structure violates specification.

 [UnsupportedSaveFormatException](/note/aspose.note.unsupportedsaveformatexception)

Requested save format is not supported.

### <a id="Aspose_Note_Document_Save_System_String_Aspose_Note_Saving_SaveOptions_"></a> Save\(string, SaveOptions\)

Saves the OneNote document to a file using the specified save options.

```csharp
public void Save(string fileName, SaveOptions options)

Parameters

fileName string

The full name for the file. If a file with the specified full name already exists, the existing file is overwritten.

options SaveOptions

Specifies the options how the document is saved in file.

Examples

Shows how to save a document using OneSaveOptions.```csharp string inputFile = “Sample1.one”; string dataDir = RunExamples.GetDataDir_LoadingAndSaving(); string outputFile = “SaveDocToOneNoteFormatUsingOneSaveOptions_out.one”;

                                                         Document document = new Document(dataDir + inputFile);

                                                         document.Save(dataDir + outputFile, new OneSaveOptions());

Shows how to save a document as image in Jpeg format using SaveFormat.```csharp
// The path to the documents directory.
                                                                                 string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                 // Load the document into Aspose.Note.
                                                                                 Document oneFile = new Document(dataDir + "Aspose.one");

                                                                                 dataDir = dataDir + "SaveToJpegImageUsingSaveFormat_out.jpg";

                                                                                 // Save the document.
                                                                                 oneFile.Save(dataDir, SaveFormat.Jpeg);

Shows how to save a document as image in Bmp format using ImageSaveOptions.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                  // Load the document into Aspose.Note.
                                                                                  Document oneFile = new Document(dataDir + "Aspose.one");

                                                                                  dataDir = dataDir + "SaveToBmpImageUsingImageSaveOptions_out.bmp";

                                                                                  // Save the document.
                                                                                  oneFile.Save(dataDir, new ImageSaveOptions(SaveFormat.Bmp));

Shows how to save a document in Pdf format with Letter page layout.```csharp
// The path to the documents directory.
                                                                              string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                              // Load the document into Aspose.Note.
                                                                              Document oneFile = new Document(dataDir + "OneNote.one");

                                                                              var dst = Path.Combine(dataDir, "SaveToPdfUsingLetterPageSettings.pdf");

                                                                              // Save the document.
                                                                              oneFile.Save(dst, new PdfSaveOptions() { PageSettings = PageSettings.Letter });

Shows how to save a document in Pdf format with A4 page layout without height limit.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                           // Load the document into Aspose.Note.
                                                                                           Document oneFile = new Document(dataDir + "OneNote.one");

                                                                                           var dst = Path.Combine(dataDir, "SaveToPdfUsingA4PageSettingsWithoutHeightLimit.pdf");

                                                                                           // Save the document.
                                                                                           oneFile.Save(dst, new PdfSaveOptions() { PageSettings = PageSettings.A4NoHeightLimit });

Shows how to save a document as grayscale image.```csharp
// The path to the documents directory.
                                                           string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                           // Load the document into Aspose.Note.
                                                           Document oneFile = new Document(dataDir + "Aspose.one");

                                                           dataDir = dataDir + "SaveAsGrayscaleImage_out.png";

                                                           // Save the document as gif.
                                                           oneFile.Save(dataDir, new ImageSaveOptions(SaveFormat.Png)
                                                                                     {
                                                                                         ColorMode = ColorMode.GrayScale
                                                                                     });

Shows how to save a document as image in Tiff format using PackBits compression.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                       // Load the document into Aspose.Note.
                                                                                       Document oneFile = new Document(Path.Combine(dataDir, "Aspose.one"));

                                                                                       var dst = Path.Combine(dataDir, "SaveToTiffUsingPackBitsCompression.tiff");

                                                                                       // Save the document.
                                                                                       oneFile.Save(dst, new ImageSaveOptions(SaveFormat.Tiff)
                                                                                                             {
                                                                                                                 TiffCompression = TiffCompression.PackBits
                                                                                                             });

Shows how to save a document as image in Tiff format using Jpeg compression.```csharp
// The path to the documents directory.
                                                                                       string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                       // Load the document into Aspose.Note.
                                                                                       Document oneFile = new Document(Path.Combine(dataDir, "Aspose.one"));

                                                                                       var dst = Path.Combine(dataDir, "SaveToTiffUsingJpegCompression.tiff");

                                                                                       // Save the document.
                                                                                       oneFile.Save(dst, new ImageSaveOptions(SaveFormat.Tiff)
                                                                                                             {
                                                                                                                 TiffCompression = TiffCompression.Jpeg,
                                                                                                                 Quality = 93
                                                                                                             });

Shows how to save a document as image in Tiff format using CCITT Group 3 fax compression.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                                // Load the document into Aspose.Note.
                                                                                                Document oneFile = new Document(Path.Combine(dataDir, "Aspose.one"));

                                                                                                var dst = Path.Combine(dataDir, "SaveToTiffUsingCcitt3Compression.tiff");

                                                                                                // Save the document.
                                                                                                oneFile.Save(dst, new ImageSaveOptions(SaveFormat.Tiff)
                                                                                                                      {
                                                                                                                          ColorMode = ColorMode.BlackAndWhite,
                                                                                                                          TiffCompression = TiffCompression.Ccitt3
                                                                                                                      });

Shows how to save a document in pdf format.```csharp
// The path to the documents directory.
                                                      string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                      // Load the document into Aspose.Note.
                                                      Document oneFile = new Document(dataDir + "Aspose.one");

                                                      // Initialize PdfSaveOptions object
                                                      PdfSaveOptions opts = new PdfSaveOptions
                                                                                {
                                                                                    // Set page index of first page to be saved
                                                                                    PageIndex = 0,

                                                                                    // Set page count
                                                                                    PageCount = 1,
                                                                                };

                                                      // Save the document as PDF
                                                      dataDir = dataDir + "SaveRangeOfPagesAsPDF_out.pdf";
                                                      oneFile.Save(dataDir, opts);

Shows how to save a document in pdf format using specific settings.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                          // Load the document into Aspose.Note.
                                                                          Document doc = new Document(dataDir + "Aspose.one");

                                                                          // Initialize PdfSaveOptions object
                                                                          PdfSaveOptions opts = new PdfSaveOptions
                                                                                                    {
                                                                                                        // Use Jpeg compression
                                                                                                        ImageCompression = Saving.Pdf.PdfImageCompression.Jpeg,

                                                                                                        // Quality for JPEG compression
                                                                                                        JpegQuality = 90
                                                                                                    };

                                                                          dataDir = dataDir + "Document.SaveWithOptions_out.pdf";
                                                                          doc.Save(dataDir, opts);

Shows how to save a document as binary image using Otsu's method.```csharp
// The path to the documents directory.
                                                                            string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                            // Load the document into Aspose.Note.
                                                                            Document oneFile = new Document(dataDir + "Aspose.one");

                                                                            dataDir = dataDir + "SaveToBinaryImageUsingOtsuMethod_out.png";

                                                                            // Save the document as gif.
                                                                            oneFile.Save(dataDir, new ImageSaveOptions(SaveFormat.Png)
                                                                                                    {
                                                                                                        ColorMode = ColorMode.BlackAndWhite,
                                                                                                        BinarizationOptions = new ImageBinarizationOptions()
                                                                                                                              {
                                                                                                                                  BinarizationMethod = BinarizationMethod.Otsu,
                                                                                                                              }
                                                                                                    });

Shows how to save a document as binary image using fixed threshold.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                          // Load the document into Aspose.Note.
                                                                          Document oneFile = new Document(dataDir + "Aspose.one");

                                                                          dataDir = dataDir + "SaveToBinaryImageUsingFixedThreshold_out.png";

                                                                          // Save the document as gif.
                                                                          oneFile.Save(dataDir, new ImageSaveOptions(SaveFormat.Png)
                                                                                                    {
                                                                                                        ColorMode = ColorMode.BlackAndWhite,
                                                                                                        BinarizationOptions = new ImageBinarizationOptions()
                                                                                                                                  {
                                                                                                                                      BinarizationMethod = BinarizationMethod.FixedThreshold,
                                                                                                                                      BinarizationThreshold = 123
                                                                                                                                  }
                                                                                                    });

#### Exceptions

 [IncorrectDocumentStructureException](/note/aspose.note.incorrectdocumentstructureexception)

The document structure violates specification.

 [UnsupportedSaveFormatException](/note/aspose.note.unsupportedsaveformatexception)

Requested save format is not supported.

### <a id="Aspose_Note_Document_Save_System_IO_Stream_Aspose_Note_Saving_SaveOptions_"></a> Save\(Stream, SaveOptions\)

Saves the OneNote document to a stream using the specified save options.

```csharp
public void Save(Stream stream, SaveOptions options)

Parameters

stream Stream

The System.IO.Stream where the document will be saved.

options SaveOptions

Specifies the options how the document is saved in stream.

Examples

Shows how to save a document in pdf format using specified default font.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                               // Load the document into Aspose.Note.
                                                                               Document oneFile = new Document(Path.Combine(dataDir, "missing-font.one"));

                                                                               // Save the document as PDF
                                                                               dataDir = dataDir + "SaveUsingDocumentFontsSubsystemWithDefaultFontName_out.pdf";
                                                                               oneFile.Save(dataDir, new PdfSaveOptions() 
                                                                                                     {
                                                                                                         FontsSubsystem = DocumentFontsSubsystem.UsingDefaultFont("Times New Roman")
                                                                                                     });

Shows how to save a document in pdf format using default font from a file.```csharp
// The path to the documents directory.
                                                                                     string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                     string fontFile = Path.Combine(dataDir, "geo_1.ttf");

                                                                                     // Load the document into Aspose.Note.
                                                                                     Document oneFile = new Document(Path.Combine(dataDir, "missing-font.one"));

                                                                                     // Save the document as PDF
                                                                                     dataDir = dataDir + "SaveUsingDocumentFontsSubsystemWithDefaultFontFromFile_out.pdf";
                                                                                     oneFile.Save(dataDir, new PdfSaveOptions()
                                                                                                               {
                                                                                                                   FontsSubsystem = DocumentFontsSubsystem.UsingDefaultFontFromFile(fontFile)
                                                                                                               });

Shows how to save a document in pdf format using default font from a stream.```csharp // The path to the documents directory. string dataDir = RunExamples.GetDataDir_LoadingAndSaving();

                                                                                   string fontFile = Path.Combine(dataDir, "geo_1.ttf");

                                                                                   // Load the document into Aspose.Note.
                                                                                   Document oneFile = new Document(Path.Combine(dataDir, "missing-font.one"));

                                                                                   // Save the document as PDF
                                                                                   dataDir = dataDir + "SaveUsingDocumentFontsSubsystemWithDefaultFontFromStream_out.pdf";

                                                                                   using (var stream = File.Open(fontFile, FileMode.Open, FileAccess.Read, FileShare.Read))
                                                                                   {
                                                                                       oneFile.Save(dataDir, new PdfSaveOptions()
                                                                                                                 {
                                                                                                                     FontsSubsystem = DocumentFontsSubsystem.UsingDefaultFontFromStream(stream)
                                                                                                                 });
                                                                                   }

#### Exceptions

 [IncorrectDocumentStructureException](/note/aspose.note.incorrectdocumentstructureexception)

The document structure violates specification.

 [UnsupportedSaveFormatException](/note/aspose.note.unsupportedsaveformatexception)

Requested save format is not supported.
</page></page\></t1\></page\></page\></page\></t1\></page\></page\></page\></t1\></page\></t1\></page\></t1\></page\></page\></page\></page\></t1\></page\></page\></page\></page\></page\></page></page></page>