1. Prodotti
  2.   eBook
  3.   .NET
  4.   EpubReader
 
  

Libreria .NET per la Lettura di Documenti EPUB

API .NET Open Source per accedere e leggere file EPUB, estrarne i contenuti e convertire EPUB in PDF all'interno di app C#.

EpubReader è una potente libreria open source .NET che consente agli sviluppatori di software di aprire e leggere documenti EPUB all'interno delle proprie applicazioni C#. La libreria supporta pienamente gli standard EPUB 2 (2.0, 2.0.1) così come EPUB 3 (3.0, 3.0.1, 3.1, 3.2). La libreria EpubReader supporta solo la lettura di file EPUB e al momento non fornisce supporto per la scrittura.

La libreria EpubReader supporta l'analisi dei libri EPUB e l'estrazione dei contenuti senza alcuna dipendenza esterna. Un documento EPUB può essere una raccolta di file HTML includendo CSS, immagini, font e altro. Pertanto può essere renderizzato nello stesso modo in cui un browser web lo fa con altri file HTML. La libreria consente agli utenti di estrarre il testo semplice dell'intero libro, supporta l'analisi dei capitoli, l'estrazione della copertina del libro e l'iterazione su tutti i file EPUB in una directory per raccogliere alcune statistiche.

Previous Next

Iniziare con EpubReader

Il modo consigliato per installare EpubReader è utilizzare NuGet. Si prega di usare il comando seguente per un'installazione fluida.

Installa EpubReader tramite NuGet

NuGet\Install-Package VersOne.Epub -Version 3.2.0 

Puoi anche installarlo manualmente; scarica i file dell'ultima versione direttamente dal repository GitHub.

Come caricare e leggere un libro EPUB tramite libreria .NET

La libreria open source EpubReader supporta pienamente il caricamento e la lettura di libri EPUB all'interno delle applicazioni .NET. La libreria include numerosi metodi utili per gestire i libri EPUB, come caricare il libro in memoria, stampare il titolo del libro, stampare l'autore del libro, stampare l'indice, stampare un capitolo specifico del libro, stampare tutti i capitoli del libro, e così via. Il seguente esempio di codice dimostra come caricare e stampare un libro EPUB utilizzando la libreria.

Leggi libro EPUB tramite libreria .NET

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

Estrai testo semplice da un libro EPUB tramite C#

La libreria open source EpubReader consente agli sviluppatori software di caricare un libro EPUB ed estrarre il testo semplice da esso utilizzando codice C# .NET. Si noti che è necessario installare il pacchetto NuGet HtmlAgilityPack per eseguire questa operazione senza problemi. Il seguente esempio dimostra come estrarre il testo semplice dell'intero libro con sole un paio di righe di codice .NET.

Estrai il testo semplice da un libro EPUB tramite 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();
        }
    }
}

Estrai la tabella dei contenuti da un libro EPUB tramite API C#

La libreria open source EpubReader consente agli sviluppatori di software di caricare un libro EPUB ed estrarre il testo semplice da esso utilizzando codice C# .NET. Si noti che è necessario installare il pacchetto NuGet HtmlAgilityPack per eseguire questa operazione senza problemi. L'esempio seguente dimostra come estrarre il testo semplice dell'intero libro con sole un paio di righe di codice .NET.

Come estrarre il sommario da un libro EPUB tramite API .NET?

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