public void AddImagesTo(Epub.ImageUseIndex index) { string itemPath = AbsolutePath.GetZipPath(); XDocument doc = null; try { doc = RawBytes.ToXhtml(); } catch { System.Diagnostics.Trace.WriteLine($"XML Error with file {AbsolutePath}"); return; } foreach (var element in FindImageElements(doc)) { HashSet <EpubItem> set = null; var href = element.GetImageHref(); var urlAbsolutePath = ZipUtils.RelativePathToAbsolute(itemPath, href); if (!index.TryGetValue(urlAbsolutePath, out set)) { set = new HashSet <EpubItem>(); index.Add(urlAbsolutePath, set); } set.Add(this); } }
public List <string> ValidateXhtml() { var errors = new List <string>(); if (this.IsXhtmlPage) { try { RawBytes.ToXhtml(); } catch (Exception e) { errors.Add($"Chapter '{AbsolutePath}' has error: {e.Message}"); } } return(errors); }
public void RemoveImageLink(string absolutePath) { string relativePath = ZipUtils.AbsolutePathToRelative(AbsolutePath.GetZipPath(), absolutePath); var doc = RawBytes.ToXhtml(); bool changed = false; foreach (var element in FindImageElements(doc)) { var href = element.GetImageHref(); if (relativePath == href) { doc.RemoveImage(element); changed = true; } } if (changed) { RawBytes = doc.ToSBytes(); } }