using System.Collections.Generic;
using GxPress.Request.Media;
using GxPress.Result.Category;
using GxPress.Result.Media;
using GxPress.Service.Interface.Epub;
using VersOne.Epub;
namespace GxPress.Service.Implement.Epub
{
public class EpubService : IEpubService
{
///
/// 获取书籍目录
///
public List GetCatalog(string path)
{
var result = new List();
EpubBook epubBook = EpubReader.ReadBook(path);
int i = 1;
// 目录
//列举章节
foreach (EpubNavigationItem chapter in epubBook.Navigation)
{
//本章标题
var bookCatalog = new BookCatalogResult();
bookCatalog.Id = i;
bookCatalog.CatalogNameg = chapter.Title;
bookCatalog.CatalogId = chapter.HtmlContentFile.FileName;
result.Add(bookCatalog);
//嵌套章节
List subChapters = chapter.NestedItems;
foreach (var item in subChapters)
{
bookCatalog = new BookCatalogResult();
bookCatalog.CatalogNameg = item.Title;
bookCatalog.CatalogId = item.HtmlContentFile.FileName;
bookCatalog.ParentId = i;
result.Add(bookCatalog);
}
i++;
}
return result;
}
///
/// 获取章节内容
///
///
public string GetBookCatalogContent(BookCatalogRequest request)
{
if (string.IsNullOrEmpty(request.Path))
return string.Empty;
EpubBook epubBook = EpubReader.ReadBook(request.Path);
string htmlContent = string.Empty;
foreach (EpubTextContentFile textContentFile in epubBook.ReadingOrder)
{
if (textContentFile.FileName.Equals(request.CatalogId) || textContentFile.FileName.Equals(request.CatalogNameg))
{
//当前文本内容文件的HTML
htmlContent = textContentFile.Content;
break;
}
}
return htmlContent;
}
}
}