.NET könyvtár EPUB dokumentumok olvasásához
Nyílt forráskódú .NET API az EPUB fájlok eléréséhez és olvasásához, tartalmuk kinyeréséhez, valamint C# alkalmazásokon belül EPUB-ot PDF-re konvertáláshoz.
Az EpubReader egy nagyon erőteljes nyílt forráskódú .NET könyvtár, amely lehetővé teszi a szoftverfejlesztők számára, hogy saját C# alkalmazásaikban megnyissák és olvassák az EPUB dokumentumokat. A könyvtár teljes mértékben támogatja az EPUB szabványokat: EPUB 2 (2.0, 2.0.1) valamint EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Az EpubReader könyvtár csak az EPUB fájlok olvasását támogatja, és jelenleg nem biztosít írási támogatást.
Az EpubReader könyvtár támogatja az EPUB könyvek és a kinyert tartalmak feldolgozását külső függőségek nélkül. Egy EPUB dokumentum lehet HTML fájlok gyűjteménye, beleértve a CSS-t, képeket, betűtípusokat és egyebeket. Így ugyanúgy renderelhető, mint egy webböngésző a többi HTML fájllal. A könyvtár lehetővé teszi a felhasználók számára, hogy kinyerjék a teljes könyv egyszerű szövegét, fejezetek feldolgozását, a könyvborító kinyerését, valamint végigmenjenek egy könyvtárban lévő összes EPUB fájlon és statisztikákat gyűjtsenek.
Az EpubReader használatának megkezdése
Az EpubReader telepítésének ajánlott módja a NuGet használata. Kérjük, használja a következő parancsot a zökkenőmentes telepítéshez.
EpubReader telepítése NuGet-en keresztül
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Telepítheti manuálisan is; töltse le a legújabb kiadási fájlokat közvetlenül a GitHub tárolóból.
Hogyan töltsünk be és olvassunk EPUB könyvet .NET könyvtáron keresztül
Az nyílt forráskódú EpubReader könyvtár teljes mértékben támogatja az EPUB könyvek betöltését és olvasását .NET alkalmazásokban. A könyvtár számos hasznos metódust tartalmaz az EPUB könyvek kezeléséhez, például a könyv memóriába töltését, a könyv címének kiírását, a szerző nevének kiírását, a tartalomjegyzék kiírását, egy adott fejezet kiírását, az összes fejezet kiírását, és így tovább. Az alábbi kódrészlet bemutatja, hogyan lehet betölteni és kiírni egy EPUB könyvet a könyvtár segítségével.
EPUB könyv olvasása .NET könyvtáron keresztül
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();
}
Egyszerű szöveg kinyerése egy EPUB könyvből C#-on keresztül
Az nyílt forráskódú EpubReader könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy C# .NET kóddal betöltsenek egy EPUB könyvet, és egyszerű szöveget nyerjenek ki belőle. Kérjük, vegye figyelembe, hogy a feladat zökkenőmentes elvégzéséhez telepítenie kell a HtmlAgilityPack NuGet csomagot. Az alábbi példa bemutatja, hogyan lehet néhány .NET kódsorral kinyerni a teljes könyv egyszerű szövegét.
Egyszerű szöveg kinyerése egy EPUB könyvből C#-on keresztül
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();
}
}
}
Tartalomjegyzék kinyerése EPUB könyvből C# API-n keresztül
A nyílt forráskódú EpubReader könyvtár lehetővé teszi a szoftverfejlesztők számára, hogy egy EPUB könyvet betöltsenek, és egyszerű szöveget nyerjenek ki belőle C# .NET kóddal. Kérjük, vegye figyelembe, hogy a feladat zökkenőmentes végrehajtásához telepítenie kell a HtmlAgilityPack Nuget csomagot. Az alábbi példa bemutatja, hogyan lehet a teljes könyv egyszerű szövegét néhány .NET kódsorral kinyerni.
Hogyan nyerhetjük ki a tartalomjegyzéket egy EPUB könyvből .NET API segítségével?
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);
}
}
}
}