1. Producten
  2.   eBoek
  3.   .NET
  4.   EpubReader
 
  

.NET Bibliotheek voor het Lezen van EPUB-documenten

Open Source .NET API om EPUB-bestanden te benaderen & lezen, de inhoud te extraheren en EPUB naar PDF te converteren binnen C#-apps.

EpubReader is een zeer krachtige open source .NET-bibliotheek die softwareontwikkelaars in staat stelt EPUB-documenten te openen en te lezen binnen hun eigen C#-applicaties. De bibliotheek ondersteunt volledig de EPUB-standaarden EPUB 2 (2.0, 2.0.1) evenals EPUB 3 (3.0, 3.0.1, 3.1, 3.2). De EpubReader-bibliotheek ondersteunt alleen het lezen van EPUB-bestanden en biedt voorlopig geen schrijfmogelijkheden.

De EpubReader-bibliotheek ondersteunt het parseren van EPUB-boeken en geëxtraheerde inhoud zonder externe afhankelijkheden. Een EPUB-document kan een verzameling HTML-bestanden zijn, inclusief CSS, afbeeldingen, lettertypen en meer. Hierdoor kan het op dezelfde manier worden weergegeven als een webbrowser met andere HTML-bestanden. De bibliotheek stelt gebruikers in staat de platte tekst van het hele boek te extraheren, hoofdstuk‑parsingondersteuning, de boekomslag te extraheren, en over alle EPUB‑bestanden in een map te itereren en enkele statistieken te verzamelen.

Previous Next

Aan de slag met EpubReader

De aanbevolen manier om EpubReader te installeren is via NuGet. Gebruik alstublieft het volgende commando voor een soepele installatie.

Installeer EpubReader via NuGet

NuGet\Install-Package VersOne.Epub -Version 3.2.0 

U kunt het ook handmatig installeren; download de nieuwste releasebestanden rechtstreeks van de GitHub repository.

Hoe EPUB-boek te laden & lezen via .NET-bibliotheek

De open‑source EpubReader‑bibliotheek ondersteunt volledig het laden en lezen van EPUB‑boeken binnen .NET‑toepassingen. De bibliotheek bevat talrijke handige methoden voor het verwerken van EPUB‑boeken, zoals het laden van een boek in het geheugen, het afdrukken van de titel van het boek, het afdrukken van de auteur van het boek, het afdrukken van de inhoudsopgave, het afdrukken van een specifiek hoofdstuk van het boek, het afdrukken van alle hoofdstukken van het boek, enzovoort. Het volgende code‑voorbeeld laat zien hoe u een EPUB‑boek kunt laden en afdrukken met behulp van de bibliotheek.

Lees EPUB-boek via .NET-bibliotheek

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();
}

Platte tekst extraheren uit een EPUB-boek via C#

De open‑source EpubReader‑bibliotheek stelt softwareontwikkelaars in staat een EPUB‑boek te laden en platte tekst eruit te extraheren met C# .NET‑code. Houd er rekening mee dat u de HtmlAgilityPack‑NuGet moet installeren om deze taak soepel uit te voeren. Het volgende voorbeeld laat zien hoe u de platte tekst van het hele boek kunt extraheren met slechts een paar regels .NET‑code.

Platte tekst extraheren uit een EPUB-boek 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();
        }
    }
}

Inhoudsopgave extraheren uit EPUB-boek via C#-API

De open‑source EpubReader‑bibliotheek stelt softwareontwikkelaars in staat een EPUB‑boek te laden en platte tekst eruit te extraheren met C# .NET‑code. Houd er rekening mee dat u de HtmlAgilityPack‑NuGet moet installeren om deze taak soepel uit te voeren. Het volgende voorbeeld toont hoe u de platte tekst van het hele boek kunt extraheren met slechts een paar regels .NET‑code.

Hoe de inhoudsopgave extraheren uit een EPUB-boek 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);
            }
        }
    }
}
 Dutch