public void DeleteItems(List <EpubItem> items) { foreach (var item in items) { Opf.DeleteItem(item); ToC.DeleteItem(item); } }
public void InsertChapter(EpubItem chapter, TocEntry tocEntry, EpubItem preceedingItem) { Opf.InsertChapter(new List <EpubItem>() { chapter }, preceedingItem); ToC.InsertChapter(new List <TocEntry>() { tocEntry }, preceedingItem); }
public void WriteFile(string fileName) { using (ZipFile zip = new ZipFile(System.Text.Encoding.UTF8)) { AddMimeType(zip); zip.CompressionLevel = Ionic.Zlib.CompressionLevel.BestCompression; Container.WriteTo(zip); Opf.WriteTo(zip); ToC.WriteToNcxEpubItem(); Opf.WriteManifestTo(zip); zip.Save(fileName); } }
public void DeleteImages(List <EpubItem> items) { foreach (var item in items) { HashSet <EpubItem> usedChapters = null; if (ImagesUsedIndex.TryGetValue(item.AbsolutePath, out usedChapters)) { foreach (var chapter in usedChapters) { chapter.RemoveImageLink(item.AbsolutePath); } } ImagesUsedIndex.Remove(item.AbsolutePath); Opf.DeleteImage(item); } }
public void RebuildImageUseIndexes() { UnusedImages.Clear(); ImagesUsedIndex.Clear(); foreach (var item in Opf.GetPageItems()) { item.AddImagesTo(ImagesUsedIndex); } MissingImages = new HashSet <string>(ImagesUsedIndex.Keys); foreach (var item in Opf.GetImageItems()) { if (ImagesUsedIndex.ContainsKey(item.AbsolutePath)) { MissingImages.Remove(item.AbsolutePath); } else { UnusedImages.Add(item); } } }
public void ReadFile(string fileName) { var options = new ReadOptions() { Encoding = System.Text.Encoding.UTF8 }; using (ZipFile zip = ZipFile.Read(fileName, options)) { Container = new Container(zip.ExtractXml(Epub.ContainerPath)); var containerPath = Container.FullPath; Opf = new Opf(zip.ExtractXml(containerPath), containerPath); foreach (var item in Opf.Manifest) { item.AddRawDataToItem(zip); } RebuildImageUseIndexes(); var ncxItem = Opf.NcxItem; ToC = new ToC(zip.ExtractXml(ncxItem.AbsolutePath), ncxItem, Opf.AbsolutePathIndex); } }
public void RenumberItemIds(int index) { Opf.RenumberItemIds(index); }
public void InsertChapters(List <EpubItem> chapters, List <TocEntry> tocEntries, EpubItem insertAt) { Opf.InsertChapter(chapters, insertAt); ToC.InsertChapter(tocEntries, insertAt); }
public IEnumerable <string> ValidateImages() { return(Opf.GetImageItems() .Where(EpubUtils.IsWebp) .Select(item => $"Image '{item.AbsolutePath}' is Webp. Convert to jpeg")); }