Bibliotecă .NET pentru citirea documentelor EPUB
API .NET Open Source pentru acces și citire fișier EPUB, extragerea conținutului și conversia EPUB în PDF în aplicații C#.
EpubReader este o bibliotecă .NET open source foarte puternică care permite dezvoltatorilor de software să deschidă și să citească documente EPUB în propriile lor aplicații C#. Biblioteca suportă pe deplin standardele EPUB 2 (2.0, 2.0.1) precum și EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Biblioteca EpubReader suportă doar citirea fișierelor EPUB și, în prezent, nu oferă suport pentru scriere.
Biblioteca EpubReader suportă parsarea cărților EPUB și a conținutului extras fără nicio dependență externă. Un document EPUB poate fi o colecție de fișiere HTML care includ CSS, imagini, fonturi și altele. Astfel, poate fi redat în același mod în care un browser web redă alte fișiere HTML. Biblioteca permite utilizatorilor să extragă textul simplu al întregii cărți, să parseze capitole, să extragă coperta cărții și să parcurgă toate fișierele EPUB dintr-un director pentru a colecta diverse statistici.
Începeți cu EpubReader
Modul recomandat de instalare a EpubReader este prin utilizarea NuGet. Vă rugăm să folosiți comanda următoare pentru o instalare fără probleme.
Instalați EpubReader prin NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
De asemenea, îl puteți instala manual; descărcați fișierele ultimei versiuni direct din depozitul GitHub.
Cum să încărcați și să citiți o carte EPUB prin biblioteca .NET
Biblioteca open source EpubReader suportă pe deplin încărcarea și citirea cărților EPUB în aplicațiile .NET. Biblioteca include numeroase metode utile pentru gestionarea cărților EPUB, cum ar fi încărcarea cărții în memorie, afișarea titlului cărții, afișarea autorului cărții, afișarea cuprinsului, afișarea unui capitol specific al cărții, afișarea tuturor capitolelor cărții și altele. Exemplul de cod de mai jos demonstrează cum să încărcați și să afișați o carte EPUB utilizând biblioteca.
Citiți o carte EPUB prin biblioteca .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();
}
Extrageți text simplu dintr-o carte EPUB prin C#
Biblioteca open source EpubReader permite dezvoltatorilor de software să încarce o carte EPUB și să extragă textul simplu din ea utilizând cod C# .NET. Vă rugăm să rețineți că trebuie să instalați pachetul NuGet HtmlAgilityPack pentru a realiza această sarcină fără probleme. Exemplul de mai jos demonstrează cum să extrageți textul simplu al întregii cărți cu doar câteva linii de cod .NET.
Extrage text simplu dintr-o carte EPUB prin 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();
}
}
}
Extrageți cuprinsul dintr-o carte EPUB prin API C#
Biblioteca open source EpubReader permite dezvoltatorilor de software să încarce o carte EPUB și să extragă textul simplu din ea utilizând cod C# .NET. Vă rugăm să rețineți că trebuie să instalați pachetul NuGet HtmlAgilityPack pentru a efectua această sarcină fără probleme. Exemplul următor demonstrează cum să extrageți textul simplu al întregii cărți cu doar câteva linii de cod .NET.
Cum să extragi cuprinsul dintr-o carte EPUB prin API .NET?
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);
}
}
}
}