Exemplo n.º 1
0
        private async Task AddPageForImageWithFittingAsync(ImageDescription image, string pageNavLabel, EpubXmlWriter.ImageFitting fitting)
        {
            var fileNameBase  = Path.GetFileNameWithoutExtension(image.Path);
            var refProperties = default(string);

            switch (fitting)
            {
            case EpubXmlWriter.ImageFitting.LeftHalf:
                fileNameBase += "_L";
                refProperties = "page-spread-left";
                break;

            case EpubXmlWriter.ImageFitting.RightHalf:
                fileNameBase += "_R";
                refProperties = "page-spread-right";
                break;
            }

            var pageItem = new PageDescription($"p_{fileNameBase}", $"{fileNameBase}.xhtml", pageNavLabel, null, refProperties);
            var html     = EpubXmlWriter.GenerateContentPage(image.Path, image.Width, image.Height, fitting);

            await AddTextEntryAsync($"{Strings.EpubContentRoot}{pageItem.Path}", html).ConfigureAwait(false);

            Contents.Add(pageItem);
            Pages.Add(pageItem);
        }
Exemplo n.º 2
0
        public void NavGenerationWorks()
        {
            var xml = EpubXmlWriter.GenerateNavXML(TestItems);

            Assert.NotEmpty(xml);
            OutputHelper.WriteLine(xml);
        }
Exemplo n.º 3
0
        public void ContentPageGenerationWorks()
        {
            var xml = EpubXmlWriter.GenerateContentPage("imagepath.jpg", 400, 300, 0);

            Assert.NotEmpty(xml);
            OutputHelper.WriteLine(xml);
        }
Exemplo n.º 4
0
        public void ContentGenerationWorks()
        {
            var metadata = new Metadata();

            SetMetadata(metadata);

            var xml = EpubXmlWriter.GenerateContentOPF(metadata, TestItems, TestItems);

            Assert.NotEmpty(xml);
            OutputHelper.WriteLine(xml);
        }
Exemplo n.º 5
0
        public async Task FinalizeAsync()
        {
            if (DynamicDataAdded)
            {
                return;
            }

            if (!Pages.Any())
            {
                throw new InvalidOperationException("Unable to create book with no pages");
            }

            await AddTextEntryAsync(Strings.EpubContentEntryName, EpubXmlWriter.GenerateContentOPF(Metadata, Contents, Pages)).ConfigureAwait(false);

            if (!Pages.Where(d => d.NavigationLabel != null).Any())
            {
                Pages.First().NavigationLabel = Metadata.Title;
            }

            await AddTextEntryAsync(Strings.EpubNavEntryName, EpubXmlWriter.GenerateNavXML(Pages)).ConfigureAwait(false);

            DynamicDataAdded = true;
        }