private void CopyPages(string sectionId, OneNote one) { using (var progress = new ProgressDialog()) { progress.SetMaximum(pageIds.Count); progress.Show(owner); foreach (var pageId in pageIds) { if (one.GetParent(pageId) == sectionId) { continue; } // get the page to copy var page = one.GetPage(pageId); progress.SetMessage(page.Title); // create a new page to get a new ID one.CreatePage(sectionId, out var newPageId); // set the page ID to the new page's ID page.Root.Attribute("ID").Value = newPageId; // remove all objectID values and let OneNote generate new IDs page.Root.Descendants().Attributes("objectID").Remove(); one.Update(page); progress.Increment(); } } }
private void WordImporter(string filepath, bool append) { using (var word = new Word()) { var html = word.ConvertFileToHtml(filepath); if (append) { using (var one = new OneNote(out var page, out _)) { page.AddHtmlContent(html); one.Update(page); } } else { using (var one = new OneNote()) { one.CreatePage(one.CurrentSectionId, out var pageId); var page = one.GetPage(pageId); page.Title = Path.GetFileName(filepath); page.AddHtmlContent(html); one.Update(page); one.NavigateTo(page.PageId); } } } }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #region InsertPagesTables private void InsertPagesTable(OneNote one) { var section = one.GetSection(); var sectionId = section.Attribute("ID").Value; one.CreatePage(sectionId, out var pageId); var page = one.GetPage(pageId); var ns = page.Namespace; page.Title = string.Format(Resx.InsertTocCommand_TOCSections, section.Attribute("name").Value); var container = new XElement(ns + "OEChildren"); var elements = section.Elements(ns + "Page"); foreach (var element in elements) { var text = new StringBuilder(); var level = int.Parse(element.Attribute("pageLevel").Value); while (level > 0) { text.Append(". . "); level--; } var link = one.GetHyperlink(element.Attribute("ID").Value, string.Empty); var name = element.Attribute("name").Value; text.Append($"<a href=\"{link}\">{name}</a>"); container.Add(new XElement(ns + "OE", new XElement(ns + "T", new XCData(text.ToString()) ))); } var title = page.Root.Elements(ns + "Title").FirstOrDefault(); title.AddAfterSelf(new XElement(ns + "Outline", container)); one.Update(page); // move TOC page to top of section... // get current section again after new page is created section = one.GetSection(); var entry = section.Elements(ns + "Page") .FirstOrDefault(e => e.Attribute("ID").Value == pageId); entry.Remove(); section.AddFirst(entry); one.UpdateHierarchy(section); one.NavigateTo(pageId); }
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #region InsertSectionsTable private void InsertSectionsTable(OneNote one, bool includePages) { var section = one.GetSection(); var sectionId = section.Attribute("ID").Value; one.CreatePage(sectionId, out var pageId); var page = one.GetPage(pageId); var ns = page.Namespace; var scope = includePages ? OneNote.Scope.Pages : OneNote.Scope.Sections; var notebook = one.GetNotebook(scope); page.Title = string.Format(Resx.InsertTocCommand_TOCNotebook, notebook.Attribute("name").Value); var container = new XElement(ns + "OEChildren"); BuildSectionTable(one, ns, container, notebook.Elements(), includePages, 1); var title = page.Root.Elements(ns + "Title").FirstOrDefault(); title.AddAfterSelf(new XElement(ns + "Outline", container)); one.Update(page); // move TOC page to top of section... // get current section again after new page is created section = one.GetSection(); var entry = section.Elements(ns + "Page") .FirstOrDefault(e => e.Attribute("ID").Value == pageId); entry.Remove(); section.AddFirst(entry); one.UpdateHierarchy(section); one.NavigateTo(pageId); }
private void PowerPointImporter(string filepath, bool append, bool split) { string outpath; using (var powerpoint = new PowerPoint()) { outpath = powerpoint.ConvertFileToImages(filepath); } if (outpath == null) { logger.WriteLine($"failed to create output path"); return; } if (split) { using (var one = new OneNote()) { var section = one.CreateSection(Path.GetFileNameWithoutExtension(filepath)); var sectionId = section.Attribute("ID").Value; var ns = one.GetNamespace(section); one.NavigateTo(sectionId); int i = 1; foreach (var file in Directory.GetFiles(outpath, "*.jpg")) { one.CreatePage(sectionId, out var pageId); var page = one.GetPage(pageId); page.Title = $"Slide {i}"; var container = page.EnsureContentContainer(); LoadImage(container, ns, file); one.Update(page); i++; } logger.WriteLine("created section"); } } else { using (var one = new OneNote()) { Page page; if (append) { page = one.GetPage(); } else { one.CreatePage(one.CurrentSectionId, out var pageId); page = one.GetPage(pageId); page.Title = Path.GetFileName(filepath); } var container = page.EnsureContentContainer(); foreach (var file in Directory.GetFiles(outpath, "*.jpg")) { using (var image = Image.FromFile(file)) { LoadImage(container, page.Namespace, file); } } one.Update(page); if (!append) { one.NavigateTo(page.PageId); } } } try { Directory.Delete(outpath, true); } catch (Exception exc) { logger.WriteLine($"Error cleaning up {outpath}", exc); } }