.NET бібліотека для читання EPUB‑документів
Відкрита .NET API для доступу та читання EPUB‑файлів, витягування їх вмісту та конвертації EPUB у PDF у C# додатках.
EpubReader — це дуже потужна бібліотека з відкритим кодом для .NET, яка дозволяє розробникам програмного забезпечення відкривати та читати EPUB‑документи у своїх C#‑застосунках. Бібліотека повністю підтримує стандарти 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);
}
}
}
}