.NET-bibliotek för läsning av EPUB-dokument
Öppen källkod .NET API för att komma åt och läsa EPUB-filer, extrahera deras innehåll och konvertera EPUB till PDF i C#-appar.
EpubReader är ett mycket kraftfullt open source .NET-bibliotek som gör det möjligt för mjukvaruutvecklare att öppna och läsa EPUB-dokument i sina egna C#-applikationer. Biblioteket stödjer fullt ut EPUB-standarderna EPUB 2 (2.0, 2.0.1) samt EPUB 3 (3.0, 3.0.1, 3.1, 3.2). EpubReader-biblioteket stöder endast läsning av EPUB-filer och erbjuder för närvarande inget stöd för skrivning.
EpubReader-biblioteket stödjer parsning av EPUB-böcker och extraherat innehåll utan några externa beroenden. Ett EPUB-dokument kan vara en samling HTML-filer inklusive CSS, bilder, typsnitt och mer. Så det kan renderas på samma sätt som en webbläsare gör med andra HTML-filer. Biblioteket låter användare extrahera ren text från hela boken, stöd för kapitelparsning, extrahera bokomslag och iterera över alla EPUB-filer i en katalog för att samla in statistik.
Komma igång med EpubReader
Det rekommenderade sättet att installera EpubReader är att använda NuGet. Använd följande kommando för en smidig installation.
Installera EpubReader via NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Du kan också installera det manuellt; ladda ner de senaste utgivningsfilerna direkt från GitHub-arkivet.
Hur man laddar och läser EPUB-bok via .NET-bibliotek
Det öppna källkods‑biblioteket EpubReader stöder fullt ut inläsning och läsning av EPUB-böcker i .NET-applikationer. Biblioteket innehåller ett flertal användbara metoder för att hantera EPUB-böcker, såsom att ladda boken i minnet, skriva ut bokens titel, skriva ut bokens författare, skriva ut innehållsförteckningen, skriva ut ett specifikt kapitel i boken, skriva ut alla kapitel i boken, och så vidare. Följande kodexempel visar hur man laddar och skriver ut en EPUB-bok med hjälp av biblioteket.
Läs EPUB-bok via .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();
}
Extrahera ren text från en EPUB-bok via C#
Det öppna källkods‑biblioteket EpubReader gör det möjligt för mjukvaruutvecklare att ladda en EPUB‑bok och extrahera ren text från den med C# .NET‑kod. Observera att du måste installera HtmlAgilityPack Nuget för att utföra denna uppgift smidigt. Följande exempel visar hur man extraherar ren text för hela boken med bara ett par rader .NET‑kod.
Extrahera ren text från en EPUB-bok via 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();
}
}
}
Extrahera innehållsförteckning från EPUB-bok via C# API
Det öppna källkods‑biblioteket EpubReader gör det möjligt för mjukvaruutvecklare att ladda en EPUB‑bok och extrahera vanlig text från den med C# .NET‑kod. Observera att du måste installera HtmlAgilityPack NuGet för att utföra denna uppgift smidigt. Följande exempel visar hur du extraherar vanlig text för hela boken med bara ett par rader .NET‑kod.
Hur extraherar man innehållsförteckning från en EPUB-bok via .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);
}
}
}
}