Beispiel #1
0
        // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

        #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);
        }
Beispiel #2
0
        private void Callback(string sectionId)
        {
            if (string.IsNullOrEmpty(sectionId))
            {
                // cancelled
                return;
            }

            var action = copying ? "copying" : "moving";

            logger.Start($"..{action} {pageIds.Count} pages");

            try
            {
                using (var one = new OneNote())
                {
                    if (copying)
                    {
                        CopyPages(sectionId, one);
                    }
                    else
                    {
                        MovePages(sectionId, one);
                    }

                    one.NavigateTo(sectionId);
                }
            }
            catch (Exception exc)
            {
                logger.WriteLine(exc);
            }
            finally
            {
                logger.End();
            }
        }
Beispiel #3
0
        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);
            }
        }