Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        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();
            }
        }