예제 #1
0
        public EpubFile(string filePath, Encoding encoding)
        {
            // Załaduj archiwum
            _file = new ZipFile(filePath, encoding);

            // Zapamiętaj referencje do plików, które mogą ulec zmianie
            ZipEntry _ncxEntry = _file.Entries.FirstOrDefault(f => Normalize(f.FileName) == ncxFileName);
            ZipEntry _opfEntry = _file.Entries.FirstOrDefault(f => Normalize(f.FileName) == opfFileName);
            IEnumerable <ZipEntry> sections = _file.Entries.Where(f => Path.GetExtension(f.FileName) == ".html");

            // Rozpakuj i rozczytaj pliki metadanych (content.opf) i spisu treści (toc.ncx)
            _ncxMetadata = new OpfMetadataFile(_ncxEntry);
            _opfMetadata = new OpfMetadataFile(_opfEntry);

            // Znajdź i wczytaj wszystkie rozdziały dokumentu
            _sections = sections.Select(e => new ContentSection(e)).ToList();

            // Usuń te pliki z archiwum - zostaną ponownie zapakowane przy zapisie pliku
            _file.RemoveEntries(sections.Union(new ZipEntry[] { _ncxEntry }).Union(new ZipEntry[] { _opfEntry }).ToArray());
        }
예제 #2
0
        public EpubFile(string filePath, Encoding encoding)
        {
            // Załaduj archiwum
            _file = new ZipFile(filePath, encoding);

            // Zapamiętaj referencje do plików, które mogą ulec zmianie
            ZipEntry _ncxEntry = _file.Entries.FirstOrDefault(f => Normalize(f.FileName) == ncxFileName);
            ZipEntry _opfEntry = _file.Entries.FirstOrDefault(f => Normalize(f.FileName) == opfFileName);
            IEnumerable<ZipEntry> sections = _file.Entries.Where(f => Path.GetExtension(f.FileName) == ".html");

            // Rozpakuj i rozczytaj pliki metadanych (content.opf) i spisu treści (toc.ncx)
            _ncxMetadata = new OpfMetadataFile(_ncxEntry);
            _opfMetadata = new OpfMetadataFile(_opfEntry);

            // Znajdź i wczytaj wszystkie rozdziały dokumentu
            _sections = sections.Select(e => new ContentSection(e)).ToList();

            // Usuń te pliki z archiwum - zostaną ponownie zapakowane przy zapisie pliku
            _file.RemoveEntries(sections.Union(new ZipEntry[] { _ncxEntry }).Union(new ZipEntry[] { _opfEntry }).ToArray());
        }