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); }
public void NavGenerationWorks() { var xml = EpubXmlWriter.GenerateNavXML(TestItems); Assert.NotEmpty(xml); OutputHelper.WriteLine(xml); }
public void ContentPageGenerationWorks() { var xml = EpubXmlWriter.GenerateContentPage("imagepath.jpg", 400, 300, 0); Assert.NotEmpty(xml); OutputHelper.WriteLine(xml); }
public void ContentGenerationWorks() { var metadata = new Metadata(); SetMetadata(metadata); var xml = EpubXmlWriter.GenerateContentOPF(metadata, TestItems, TestItems); Assert.NotEmpty(xml); OutputHelper.WriteLine(xml); }
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; }