.NET biblioteka EPUB dokumentų skaitymui
Atviro kodo .NET API prieigai ir EPUB failų skaitymui, jų turinio išgavimui bei EPUB konvertavimui į PDF C# programose.
EpubReader yra labai galinga atviro kodo .NET biblioteka, kuri leidžia programinės įrangos kūrėjams atverti ir skaityti EPUB dokumentus savo C# programose. Biblioteka pilnai palaiko EPUB standartus EPUB 2 (2.0, 2.0.1) bei EPUB 3 (3.0, 3.0.1, 3.1, 3.2). EpubReader biblioteka šiuo metu palaiko tik EPUB failų skaitymą ir nesuteikia rašymo palaikymo.
EpubReader biblioteka palaiko EPUB knygų ir išgautų turinių analizę be jokių išorinių priklausomybių. EPUB dokumentas gali būti HTML failų rinkinys, įskaitant CSS, paveikslėlius, šriftus ir kt. Todėl jis gali būti atvaizduojamas taip pat, kaip tai daro žiniatinklio naršyklė su kitais HTML failais. Biblioteka leidžia vartotojams išgauti visos knygos grynąjį tekstą, palaiko skyrių analizę, išgauti knygos viršelį ir peržvelgti visus EPUB failus kataloge bei surinkti kai kurią statistiką.
Pradžia su EpubReader
Rekomenduojamas būdas įdiegti EpubReader yra naudojant NuGet. Prašome naudoti šią komandą sklandžiam įdiegimui.
Įdiekite EpubReader naudodami NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Taip pat galite įdiegti rankiniu būdu; atsisiųskite naujausius leidimo failus tiesiai iš GitHub saugyklos.
Kaip įkelti ir skaityti EPUB knygą naudojant .NET biblioteką
Atviro kodo EpubReader biblioteka visiškai palaiko EPUB knygų įkėlimą ir skaitymą .NET programose. Biblioteka apima daugybę naudingų metodų, skirtų tvarkyti EPUB knygas, pvz., įkelti knygą į atmintį, atspausdinti knygos pavadinimą, atspausdinti knygos autorių, atspausdinti turinį, atspausdinti konkretų knygos skyrių, atspausdinti visus knygos skyrius ir t.t. Žemiau pateiktas kodo pavyzdys parodo, kaip naudoti biblioteką EPUB knygos įkėlimui ir spausdinimui.
Skaitykite EPUB knygą naudodami .NET biblioteką
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();
}
Išgauti paprastą tekstą iš EPUB knygos naudojant C#
Atviro kodo EpubReader biblioteka leidžia programinės įrangos kūrėjams įkelti EPUB knygą ir iš jos išgauti grynąjį tekstą naudojant C# .NET kodą. Atkreipkite dėmesį, kad norint sklandžiai atlikti šią užduotį, reikia įdiegti HtmlAgilityPack NuGet paketą. Žemiau pateiktas pavyzdys rodo, kaip išgauti visos knygos grynąjį tekstą keliais .NET kodo eilutėmis.
Išgauti grynąjį tekstą iš EPUB knygos naudojant 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();
}
}
}
Išgauti turinio lentelę iš EPUB knygos naudojant C# API
Atviro kodo EpubReader biblioteka leidžia programų kūrėjams įkelti EPUB knygą ir iš jos išgauti grynąjį tekstą naudojant C# .NET kodą. Atkreipkite dėmesį, kad norint sklandžiai atlikti šią užduotį, reikia įdiegti HtmlAgilityPack NuGet paketą. Žemiau pateiktas pavyzdys parodo, kaip išgauti visos knygos grynąjį tekstą vos keliais .NET kodo eilutėmis.
Kaip išgauti turinį iš EPUB knygos naudojant .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);
}
}
}
}