Exemple #1
0
        public void NavigationCenterExtendedTest()
        {
            OPF target   = new OPF(); // TODO: Initialize to an appropriate value
            NCX expected = null;      // TODO: Initialize to an appropriate value
            NCX actual;

            target.NavigationCenterExtended = expected;
            actual = target.NavigationCenterExtended;
            Assert.AreEqual(expected, actual);
            Assert.Inconclusive("Verify the correctness of this test method.");
        }
Exemple #2
0
        public void CreateEpub()
        {
            if (zf == null)
            {
                throw new Exception("Can not run Create EPUB twice, access the fStream object instead.");
            }
            OPF                = new OPFPackage();
            OPF.metaData       = new OPFMetaData(Title, author, "Chay#3670", "null", "2020-01-01");
            OPF.manifest       = new Manifest();
            OPF.manifest.items = pages.ToItems();
            OPF.manifest.items.AddRange(images.ToItems());
            zf.CreateEntry("OEBPS/Pictures/");
            foreach (Image img in images)
            {
                using (BinaryWriter bw = new BinaryWriter(zf.CreateEntry($"OEBPS/Pictures/{img.Name}.jpeg").Open()))
                    bw.Write(img.bytes, 0, img.bytes.Length);
            }
            OPF.manifest.items.Add(new Item("cover", "cover.jpeg", MediaType.image));
            OPF.manifest.items.Add(new Item("css", "Styles/stylesheet.css", MediaType.css));
            OPF.manifest.items.Add(new Item("ncx", "toc.ncx", MediaType.ncx));
            OPF.spine = new Spine(OPF.manifest.items);

            //TOC
            ToC        = new NCX();
            ToC.header = new TOCHeader();
            ToC.header.AddMeta("VrienCo", "dtb:uid");
            ToC.header.AddMeta("1", "dtb:depth");
            ToC.header.AddMeta("0", "dtb:totalPageCount");
            ToC.header.AddMeta("0", "dtb:maxPageNumber");

            ToC.title = new DocTitle(Title);
            ToC.map   = new NavMap();

            for (int idx = 0; idx < pages.Count; idx++)
            {
                ToC.map.Points.Add(new NavPoint()
                {
                    text = pages[idx].id, id = $"navPoint-{idx}", playOrder = idx.ToString(), source = pages[idx].hrefTo
                });
            }

            Stream       echo = zf.CreateEntry("OEBPS/content.opf").Open();
            StreamWriter sw   = new StreamWriter(echo);

            sw.Write(OPF.ToString());
            sw.Close();
            echo = zf.CreateEntry("OEBPS/toc.ncx").Open();
            sw   = new StreamWriter(echo);
            sw.Write(ToC.GenerateTOCNCXFile());
            sw.Close();
            echo = zf.CreateEntry("OEBPS/cover.xhtml").Open();
            sw   = new StreamWriter(echo);
            sw.Write(xhtmlCover);
            sw.Close();
            echo = zf.CreateEntry("Styles/stylesheet.css").Open();
            sw   = new StreamWriter(echo);
            sw.Write(stylesheet);
            sw.Close();
            zf.Dispose();
            zf = null;
        }