.NET-bibliotek til læsning af EPUB-dokumenter
Open Source .NET API til at få adgang til og læse EPUB-filer, udtrække deres indhold og konvertere EPUB til PDF i C#-apps.
EpubReader er et meget kraftfuldt open source .NET-bibliotek, der gør det muligt for softwareudviklere at åbne og læse EPUB-dokumenter i deres egne C#-applikationer. Biblioteket understøtter fuldt ud EPUB-standarderne EPUB 2 (2.0, 2.0.1) samt EPUB 3 (3.0, 3.0.1, 3.1, 3.2). EpubReader-biblioteket understøtter kun læsning af EPUB-filer og tilbyder i øjeblikket ikke skriveunderstøttelse.
EpubReader-biblioteket understøtter parsing af EPUB-bøger og udtrukket indhold uden eksterne afhængigheder. Et EPUB-dokument kan være en samling af HTML-filer inklusive CSS, billeder, skrifttyper og mere. Således kan det gengives på samme måde som en webbrowser gør med andre HTML-filer. Biblioteket giver brugerne mulighed for at udtrække den rene tekst fra hele bogen, understøttelse af kapitels parsing, udtrække bogomslag og iterere over alle EPUB-filer i en mappe for at indsamle nogle statistikker.
Kom i gang med EpubReader
Den anbefalede måde at installere EpubReader på er ved at bruge NuGet. Brug venligst følgende kommando for en problemfri installation.
Installer EpubReader via NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Du kan også installere den manuelt; download de seneste udgivelsesfiler direkte fra GitHub-repositoryet.
Sådan indlæses og læses en EPUB-bog via .NET-biblioteket
Det open source EpubReader-bibliotek understøtter fuldt ud indlæsning og læsning af EPUB-bøger i .NET-applikationer. Biblioteket indeholder adskillige nyttige metoder til håndtering af EPUB-bøger, såsom at indlæse bogen i hukommelsen, udskrive bogens titel, udskrive forfatteren, udskrive indholdsfortegnelsen, udskrive et bestemt kapitel i bogen, udskrive alle kapitler i bogen osv. Følgende kodeeksempel demonstrerer, hvordan man indlæser og udskriver en EPUB-bog ved hjælp af biblioteket.
Læs EPUB-bog 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();
}
Udtræk ren tekst fra en EPUB-bog via C#
Det open source EpubReader-bibliotek gør det muligt for softwareudviklere at indlæse en EPUB-bog og udtrække ren tekst fra den ved hjælp af C# .NET-kode. Bemærk, at du skal installere HtmlAgilityPack NuGet for at udføre denne opgave problemfrit. Følgende eksempel demonstrerer, hvordan man udtrækker den rene tekst fra hele bogen med kun et par linjer .NET-kode.
Udtræk ren tekst fra en EPUB-bog 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();
}
}
}
Udtræk indholdsfortegnelse fra en EPUB-bog via C# API
Det open source EpubReader-bibliotek gør det muligt for softwareudviklere at indlæse en EPUB-bog og udtrække ren tekst fra den ved hjælp af C# .NET-kode. Bemærk, at du skal installere HtmlAgilityPack NuGet for at udføre denne opgave problemfrit. Følgende eksempel demonstrerer, hvordan du udtrækker den rene tekst fra hele bogen med kun et par linjer .NET-kode.
Hvordan udtrækker man indholdsfortegnelsen fra en EPUB-bog 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);
}
}
}
}