.NET-bibliotek for lesing av EPUB-dokumenter
Open Source .NET API for tilgang og lesing av EPUB-filer, hente ut innholdet og konvertere EPUB til PDF i C#-apper.
EpubReader er et svært kraftig åpen kildekode .NET-bibliotek som gjør det mulig for programvareutviklere å åpne og lese EPUB-dokumenter i sine egne C#-applikasjoner. Biblioteket støtter fullt ut EPUB-standardene EPUB 2 (2.0, 2.0.1) samt EPUB 3 (3.0, 3.0.1, 3.1, 3.2). EpubReader-biblioteket støtter kun lesing av EPUB-filer og tilbyr foreløpig ikke skrive‑støtte.
EpubReader-biblioteket støtter parsing av EPUB-bøker og ekstraherte innhold uten noen eksterne avhengigheter. Et EPUB-dokument kan være en samling av HTML‑filer inkludert CSS, bilder, skrifttyper og mer. Derfor kan det gjengis på samme måte som en nettleser gjør med andre HTML‑filer. Biblioteket lar brukere ekstrahere ren tekst fra hele boken, støtte for kapittelparsing, ekstrahere bokomslag, og iterere over alle EPUB‑filer i en katalog og samle noen statistikker.
Kom i gang med EpubReader
Den anbefalte måten å installere EpubReader på er å bruke NuGet. Vennligst bruk følgende kommando for en smidig installasjon.
Installer EpubReader via NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Du kan også installere den manuelt; last ned de nyeste utgivelsesfilene direkte fra GitHub-repoet.
Hvordan laste inn og lese EPUB-bok via .NET-bibliotek
Det åpne kildekodebiblioteket EpubReader støtter fullt ut lasting og lesing av EPUB‑bøker i .NET‑applikasjoner. Biblioteket inneholder en rekke nyttige metoder for håndtering av EPUB‑bøker, som å laste inn boken i minnet, skrive ut boktittelen, skrive ut forfatteren, skrive ut innholdsfortegnelsen, skrive ut et bestemt kapittel i boken, skrive ut alle kapitlene i boken, og så videre. Følgende kodeeksempel demonstrerer hvordan du laster inn og skriver ut en EPUB‑bok ved hjelp av biblioteket.
Les 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();
}
Ekstraher ren tekst fra en EPUB-bok via C#
Det åpne kildekodebiblioteket EpubReader gjør det mulig for programvareutviklere å laste inn en EPUB‑bok og hente ut ren tekst fra den ved hjelp av C# .NET‑kode. Vær oppmerksom på at du må installere HtmlAgilityPack‑NuGet for å utføre denne oppgaven smidig. Følgende eksempel demonstrerer hvordan du henter ut ren tekst fra hele boken med bare et par linjer .NET‑kode.
Ekstraher ren tekst fra 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();
}
}
}
Ekstraher innholdsfortegnelse fra EPUB-bok via C# API
Det åpne kildekodebiblioteket EpubReader gjør det mulig for programvareutviklere å laste inn en EPUB‑bok og hente ut ren tekst fra den ved hjelp av C# .NET‑kode. Vær oppmerksom på at du må installere HtmlAgilityPack‑NuGet for å utføre denne oppgaven smidig. Følgende eksempel viser hvordan du kan hente ut ren tekst fra hele boken med bare noen få linjer .NET‑kode.
Hvordan ekstrahere innholdsfortegnelse fra 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);
}
}
}
}