.NET knihovna pro čtení dokumentů EPUB
Open Source .NET API pro přístup a čtení souboru EPUB, extrakci jeho obsahu a konverzi EPUB do PDF v aplikacích C#.
EpubReader je velmi výkonná open source .NET knihovna, která umožňuje vývojářům softwaru otevírat a číst EPUB dokumenty ve svých vlastních C# aplikacích. Knihovna plně podporuje standardy EPUB 2 (2.0, 2.0.1) i EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Knihovna EpubReader zatím podporuje pouze čtení EPUB souborů a neposkytuje podporu zápisu.
Knihovna EpubReader podporuje parsování EPUB knih a extrahovaný obsah bez jakýchkoli externích závislostí. EPUB dokument může být sbírkou HTML souborů včetně CSS, obrázků, fontů a dalších. Takže může být vykreslen stejným způsobem, jako to dělá webový prohlížeč s ostatními HTML soubory. Knihovna umožňuje uživatelům extrahovat prostý text celé knihy, podporu parsování kapitol, extrahovat obálku knihy a procházet všechny EPUB soubory v adresáři a shromažďovat některé statistiky.
Začínáme s EpubReader
Doporučený způsob instalace EpubReader je pomocí NuGet. Použijte prosím následující příkaz pro plynulou instalaci.
Instalovat EpubReader pomocí NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Můžete jej také nainstalovat ručně; stáhněte nejnovější soubory vydání přímo z repozitáře GitHub.
Jak načíst a číst EPUB knihu pomocí .NET knihovny
Open‑source knihovna EpubReader plně podporuje načítání a čtení EPUB knih v .NET aplikacích. Knihovna obsahuje řadu užitečných metod pro práci s EPUB knihami, jako je načtení knihy do paměti, vytištění názvu knihy, vytištění autora knihy, vytištění obsahu, vytištění konkrétní kapitoly knihy, vytištění všech kapitol knihy a podobně. Následující ukázkový kód demonstruje, jak načíst a vytisknout EPUB knihu pomocí knihovny.
Číst EPUB knihu pomocí .NET knihovny
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();
}
Extrahovat prostý text z EPUB knihy pomocí C#
Open‑source knihovna EpubReader umožňuje vývojářům softwaru načíst EPUB knihu a extrahovat z ní čistý text pomocí C# .NET kódu. Všimněte si, že pro hladké provedení tohoto úkolu musíte nainstalovat NuGet balíček HtmlAgilityPack. Následující příklad ukazuje, jak extrahovat čistý text celé knihy pomocí jen několika řádků .NET kódu.
Extrahovat prostý text z EPUB knihy 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();
}
}
}
Extrahovat obsah z EPUB knihy pomocí C# API
Open source knihovna EpubReader umožňuje vývojářům softwaru načíst EPUB knihu a extrahovat z ní prostý text pomocí C# .NET kódu. Všimněte si, že je třeba nainstalovat NuGet balíček HtmlAgilityPack, aby byl tento úkol proveden hladce. Následující příklad ukazuje, jak extrahovat prostý text celé knihy pomocí jen několika řádků .NET kódu.
Jak extrahovat obsah z EPUB knihy pomocí .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);
}
}
}
}