.NET библиотека за четене на EPUB документи
Open Source .NET API за достъп и четене на EPUB файл, извличане на съдържанието му и конвертиране на EPUB в PDF в C# приложения.
EpubReader е много мощна отворена .NET библиотека, която позволява на софтуерните разработчици да отварят и четат EPUB документи в собствените си C# приложения. Библиотеката напълно поддържа EPUB стандарти EPUB 2 (2.0, 2.0.1) както и EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Библиотеката EpubReader поддържа само четене на EPUB файлове и в момента не предоставя поддръжка за писане.
Библиотеката EpubReader поддържа парсиране на EPUB книги и извлечено съдържание без външни зависимости. EPUB документ може да бъде колекция от HTML файлове, включително CSS, изображения, шрифтове и др. Така може да се рендерира по същия начин, както уеб браузърът с други HTML файлове. Библиотеката позволява на потребителите да извлекат чистия текст на цялата книга, поддръжка за парсиране на глави, извличане на корицата на книгата и обхождане на всички EPUB файлове в директория за събиране на статистика.
Започване с EpubReader
Препоръчителният начин за инсталиране на EpubReader е чрез NuGet. Моля, използвайте следната команда за гладка инсталация.
Инсталирайте EpubReader чрез NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Можете също да го инсталирате ръчно; изтеглете последните файлове от последното издание директно от хранилището GitHub.
Как да заредите и прочетете EPUB книга чрез .NET библиотека
Отворената библиотека EpubReader напълно поддържа зареждане и четене на EPUB книги в .NET приложения. Библиотеката включва множество полезни методи за работа с EPUB книги, като зареждане на книгата в паметта, отпечатване на заглавието на книгата, отпечатване на автора на книгата, отпечатване на съдържанието, отпечатване на конкретна глава от книгата, отпечатване на всички глави от книгата и др. Следният пример с код демонстрира как да заредите и отпечатате EPUB книга, използвайки библиотеката.
Прочетете EPUB книга чрез .NET библиотека
using System.Text;
using VersOne.Epub;
using HtmlAgilityPack;
// Load the book into memory
EpubBook book = EpubReader.ReadBook("test.epub");
// Print the title and the author of the book
Console.WriteLine($"Title: {book.Title}");
Console.WriteLine($"Author: {book.Author}");
Console.WriteLine();
// Print the table of contents
Console.WriteLine("TABLE OF CONTENTS:");
PrintTableOfContents();
Console.WriteLine();
// Print the text content of all chapters in the book
Console.WriteLine("CHAPTERS:");
PrintChapters();
void PrintTableOfContents()
{
foreach (EpubNavigationItem navigationItem in book.Navigation)
{
PrintNavigationItem(navigationItem, 0);
}
}
void PrintNavigationItem(EpubNavigationItem navigationItem, int identLevel)
{
Console.Write(new string(' ', identLevel * 2));
Console.WriteLine(navigationItem.Title);
foreach (EpubNavigationItem nestedNavigationItem in navigationItem.NestedItems)
{
PrintNavigationItem(nestedNavigationItem, identLevel + 1);
}
}
void PrintChapters()
{
foreach (EpubTextContentFile textContentFile in book.ReadingOrder)
{
PrintTextContentFile(textContentFile);
}
}
void PrintTextContentFile(EpubTextContentFile textContentFile)
{
HtmlDocument htmlDocument = new();
htmlDocument.LoadHtml(textContentFile.Content);
StringBuilder sb = new();
foreach (HtmlNode node in htmlDocument.DocumentNode.SelectNodes("//text()"))
{
sb.AppendLine(node.InnerText.Trim());
}
string contentText = sb.ToString();
Console.WriteLine(contentText);
Console.WriteLine();
}
Извличане на чист текст от EPUB книга чрез C#
Отворената библиотека EpubReader позволява на софтуерните разработчици да заредят EPUB книга и да извлекат чист текст от нея, използвайки C# .NET код. Моля, обърнете внимание, че трябва да инсталирате HtmlAgilityPack NuGet, за да изпълните тази задача гладко. Следният пример демонстрира как да извлечете чистия текст на цялата книга само с няколко реда .NET код.
Извличане на чист текст от EPUB книга чрез C#
using System;
using System.Text;
using HtmlAgilityPack;
namespace VersOne.Epub.ConsoleDemo
{
internal static class ExtractPlainText
{
public static void Run(string filePath)
{
EpubBook book = EpubReader.ReadBook(filePath);
foreach (EpubTextContentFile textContentFile in book.ReadingOrder)
{
PrintTextContentFile(textContentFile);
}
}
private static void PrintTextContentFile(EpubTextContentFile textContentFile)
{
HtmlDocument htmlDocument = new();
htmlDocument.LoadHtml(textContentFile.Content);
StringBuilder sb = new();
foreach (HtmlNode node in htmlDocument.DocumentNode.SelectNodes("//text()"))
{
sb.AppendLine(node.InnerText.Trim());
}
string contentText = sb.ToString();
Console.WriteLine(contentText);
Console.WriteLine();
}
}
}
Извличане на таблицата на съдържанието от EPUB книга чрез C# API
Отворената библиотека EpubReader позволява на софтуерните разработчици да заредят EPUB книга и да извлекат чист текст от нея, използвайки C# .NET код. Моля, обърнете внимание, че трябва да инсталирате HtmlAgilityPack NuGet, за да изпълните тази задача гладко. Следният пример демонстрира как да извлечете чистия текст на цялата книга с само няколко реда .NET код.
Как да извлечете съдържанието от EPUB книга чрез .NET API?
using System;
namespace VersOne.Epub.ConsoleDemo
{
internal static class PrintNavigation
{
public static void Run(string filePath)
{
using (EpubBookRef bookRef = EpubReader.OpenBook(filePath))
{
Console.WriteLine("Navigation:");
foreach (EpubNavigationItemRef navigationItemRef in bookRef.GetNavigation())
{
PrintNavigationItem(navigationItemRef, 0);
}
}
Console.WriteLine();
}
private static void PrintNavigationItem(EpubNavigationItemRef navigationItemRef, int identLevel)
{
Console.Write(new string(' ', identLevel * 2));
Console.WriteLine(navigationItemRef.Title);
foreach (EpubNavigationItemRef nestedNavigationItemRef in navigationItemRef.NestedItems)
{
PrintNavigationItem(nestedNavigationItemRef, identLevel + 1);
}
}
}
}