1. Produkter
  2.   e-bog
  3.   .NET
  4.   EpubReader
 
  

.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.

Previous Next

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