Biblioteka .NET do odczytu dokumentów EPUB
Open Source .NET API do uzyskiwania dostępu i odczytywania plików EPUB, wyodrębniania ich zawartości oraz konwertowania EPUB na PDF w aplikacjach C#.
EpubReader to bardzo potężna otwarto‑źródłowa biblioteka .NET, która umożliwia programistom otwieranie i czytanie dokumentów EPUB w ich własnych aplikacjach C#. Biblioteka w pełni obsługuje standardy EPUB 2 (2.0, 2.0.1) oraz EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Biblioteka EpubReader obsługuje wyłącznie odczyt plików EPUB i na razie nie zapewnia możliwości zapisu.
Biblioteka EpubReader obsługuje parsowanie książek EPUB oraz wyodrębnianie ich zawartości bez żadnych zewnętrznych zależności. Dokument EPUB może być zbiorem plików HTML, w tym CSS, obrazów, czcionek i innych. Dzięki temu może być renderowany tak samo, jak przeglądarka internetowa renderuje inne pliki HTML. Biblioteka umożliwia użytkownikom wyodrębnienie zwykłego tekstu całej książki, obsługę parsowania rozdziałów, wyodrębnienie okładki książki oraz iterację po wszystkich plikach EPUB w katalogu w celu zebrania statystyk.
Rozpoczęcie pracy z EpubReader
Zalecanym sposobem instalacji EpubReader jest użycie NuGet. Proszę użyć poniższego polecenia, aby przeprowadzić płynną instalację.
Zainstaluj EpubReader przez NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Możesz również zainstalować go ręcznie; pobierz najnowsze pliki wydania bezpośrednio z repozytorium GitHub.
Jak załadować i odczytać książkę EPUB przy użyciu biblioteki .NET
Biblioteka open source EpubReader w pełni obsługuje ładowanie i czytanie książek EPUB w aplikacjach .NET. Biblioteka zawiera liczne przydatne metody do obsługi książek EPUB, takie jak ładowanie książki do pamięci, wyświetlanie tytułu książki, wyświetlanie autora książki, wyświetlanie spisu treści, wyświetlanie konkretnego rozdziału książki, wyświetlanie wszystkich rozdziałów książki i tak dalej. Poniższy przykład kodu demonstruje, jak załadować i wyświetlić książkę EPUB przy użyciu biblioteki.
Odczytaj książkę EPUB przy użyciu biblioteki .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();
}
Wyodrębnij czysty tekst z książki EPUB przy użyciu C#
Biblioteka open source EpubReader umożliwia programistom ładowanie książki EPUB i wyodrębnianie z niej czystego tekstu przy użyciu kodu C# .NET. Należy pamiętać, że aby wykonać to zadanie płynnie, trzeba zainstalować pakiet NuGet HtmlAgilityPack. Poniższy przykład demonstruje, jak wyodrębnić czysty tekst całej książki przy użyciu zaledwie kilku linii kodu .NET.
Wyodrębnij zwykły tekst z książki EPUB za pomocą 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();
}
}
}
Wyodrębnij spis treści z książki EPUB przy użyciu API C#
Biblioteka open source EpubReader umożliwia programistom ładowanie książki EPUB i wyodrębnianie z niej zwykłego tekstu przy użyciu kodu C# .NET. Należy pamiętać, że aby wykonać to zadanie płynnie, trzeba zainstalować HtmlAgilityPack Nuget. Poniższy przykład pokazuje, jak wyodrębnić zwykły tekst całej książki przy użyciu zaledwie kilku linii kodu .NET.
Jak wyodrębnić spis treści z książki EPUB za pomocą interfejsu .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);
}
}
}
}