/// <summary> /// Convierte las páginas de un libro en formato ePub /// </summary> private BookPageModelCollection ConvertPagesEPub(BookModel book, string pathTarget) { LibEBook.Formats.eBook.Book ePub = new LibEBook.BookFactory().Load(LibEBook.BookFactory.BookType.ePub, book.FileName, pathTarget); BookPageModelCollection pages = new BookPageModelCollection(); // Crea las páginas pages.AddRange(ConvertPagesEPub(ePub.Index)); // Devuelve la colección de páginas return(pages); }
/// <summary> /// Convierte las páginas /// </summary> private BookPageModelCollection ConvertPagesEPub(LibEBook.Formats.eBook.IndexItemsCollection ePubPages) { BookPageModelCollection pages = new BookPageModelCollection(); // Añade las páginas foreach (LibEBook.Formats.eBook.IndexItem ePubPage in ePubPages) { BookPageModel page = new BookPageModel(); // Asigna los datos page.Name = ePubPage.Name; page.FileName = ePubPage.URL; page.Pages.AddRange(ConvertPagesEPub(ePubPage.Items)); // Añade la página a la colección pages.Add(page); } // Devuelve la colección de páginas return(pages); }
/// <summary> /// Interpreta un libro /// </summary> public BookPageModelCollection Parse(BookModel book, string pathTarget) { BookPageModelCollection pages = new BookPageModelCollection(); // Obtiene las páginas switch (book.IDType) { case BookModel.BookType.Book: pages = ConvertPagesEPub(book, pathTarget); break; case BookModel.BookType.Comic: pages = ConvertPagesComic(book, pathTarget); break; } // Normaliza las páginas pages.NormalizePages(); // Devuelve las páginas return(pages); }
/// <summary> /// Convierte las páginas de un cómic /// </summary> private BookPageModelCollection ConvertPagesComic(BookModel book, string pathTarget) { LibComicsBooks.ComicBook comic = new LibComicsBooks.ComicBook(); BookPageModelCollection pages = new BookPageModelCollection(); // Descomprime el archivo comic.Load(book.FileName); // Asigna las páginas for (int index = 0; index < comic.Pages.Count; index++) { BookPageModel page = new BookPageModel(); // Asigna los datos page.Name = $"Página {index + 1}"; page.FileName = comic.Pages[index].FileName; // Añade la página pages.Add(page); } // Devuelve la colección de páginas return(pages); }
public TreePagesViewModel(BookPageModelCollection pages) { _pages = pages; }