.NET-Bibliothek zum Lesen von EPUB-Dokumenten
Open-Source .NET API zum Zugreifen & Lesen von EPUB-Dateien, deren Inhalte extrahieren und EPUB in PDF innerhalb von C#-Apps konvertieren.
EpubReader ist eine sehr leistungsfähige Open-Source-.NET-Bibliothek, die Softwareentwicklern ermöglicht, EPUB-Dokumente in ihren eigenen C#‑Anwendungen zu öffnen und zu lesen. Die Bibliothek unterstützt vollständig die EPUB-Standards EPUB 2 (2.0, 2.0.1) sowie EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Die EpubReader‑Bibliothek unterstützt derzeit nur das Lesen von EPUB‑Dateien und bietet momentan keine Schreibunterstützung.
Die EpubReader‑Bibliothek unterstützt das Parsen von EPUB‑Büchern und das Extrahieren von Inhalten ohne externe Abhängigkeiten. Ein EPUB‑Dokument kann eine Sammlung von HTML‑Dateien inklusive CSS, Bildern, Schriftarten und mehr sein. Daher kann es genauso gerendert werden wie ein Webbrowser andere HTML‑Dateien. Die Bibliothek ermöglicht es Benutzern, den Klartext des gesamten Buches zu extrahieren, Kapitel zu parsen, das Buchcover zu extrahieren und über alle EPUB‑Dateien in einem Verzeichnis zu iterieren, um einige Statistiken zu sammeln.
Erste Schritte mit EpubReader
Die empfohlene Methode, EpubReader zu installieren, ist die Verwendung von NuGet. Bitte verwenden Sie den folgenden Befehl für eine reibungslose Installation.
EpubReader über NuGet installieren
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Sie können es auch manuell installieren; laden Sie die neuesten Release-Dateien direkt aus dem GitHub-Repository herunter.
Wie man ein EPUB-Buch über .NET-Bibliothek lädt und liest
Die Open-Source-Bibliothek EpubReader unterstützt das Laden und Lesen von EPUB‑Büchern in .NET‑Anwendungen vollständig. Die Bibliothek enthält zahlreiche nützliche Methoden zur Handhabung von EPUB‑Büchern, wie das Laden des Buches in den Speicher, das Ausgeben des Buchtitels, das Ausgeben des Autors, das Ausgeben des Inhaltsverzeichnisses, das Ausgeben eines bestimmten Kapitels, das Ausgeben aller Kapitel und so weiter. Das folgende Codebeispiel zeigt, wie man ein EPUB‑Buch mit der Bibliothek lädt und ausgibt.
EPUB-Buch über .NET-Bibliothek lesen
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();
}
Einfachen Text aus einem EPUB-Buch mit C# extrahieren
Die Open-Source-Bibliothek EpubReader ermöglicht es Softwareentwicklern, ein EPUB‑Buch zu laden und den Klartext daraus mit C#‑.NET‑Code zu extrahieren. Bitte beachten Sie, dass Sie das HtmlAgilityPack‑NuGet installieren müssen, um diese Aufgabe reibungslos auszuführen. Das folgende Beispiel zeigt, wie man den Klartext des gesamten Buches mit nur wenigen Zeilen .NET‑Code extrahiert.
Klartext aus einem EPUB-Buch mit C# extrahieren
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();
}
}
}
Inhaltsverzeichnis aus einem EPUB-Buch über C#-API extrahieren
Die Open-Source-Bibliothek EpubReader ermöglicht es Softwareentwicklern, ein EPUB‑Buch zu laden und mit C#‑.NET‑Code den Klartext daraus zu extrahieren. Bitte beachten Sie, dass Sie das NuGet‑Paket HtmlAgilityPack installieren müssen, um diese Aufgabe reibungslos auszuführen. Das folgende Beispiel zeigt, wie man mit nur wenigen Zeilen .NET‑Code den Klartext des gesamten Buches extrahiert.
Wie man das Inhaltsverzeichnis aus einem EPUB-Buch über die .NET-API extrahiert?
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);
}
}
}
}