1. Produtos
  2.   e-book
  3.   .NET
  4.   EpubReader
 
  

Biblioteca .NET para Leitura de Documentos EPUB

API .NET de Código Aberto para Acessar & Ler arquivos EPUB, extrair seu conteúdo e converter EPUB para PDF dentro de aplicativos C#.

EpubReader é uma biblioteca .NET de código aberto muito poderosa que permite que desenvolvedores de software abram e leiam documentos EPUB dentro de suas próprias aplicações C#. A biblioteca oferece suporte total aos padrões EPUB 2 (2.0, 2.0.1) e também ao EPUB 3 (3.0, 3.0.1, 3.1, 3.2). A biblioteca EpubReader suporta apenas a leitura de arquivos EPUB e, por enquanto, não fornece suporte para escrita.

A biblioteca EpubReader suporta a análise de livros EPUB e a extração de conteúdo sem dependências externas. Um documento EPUB pode ser uma coleção de arquivos HTML incluindo CSS, imagens, fontes e mais. Portanto, pode ser renderizado da mesma forma que um navegador web faz com outros arquivos HTML. A biblioteca permite que os usuários extraiam o texto simples de todo o livro, suporte à análise de capítulos, extração da capa do livro e iteração sobre todos os arquivos EPUB em um diretório para coletar algumas estatísticas.

Previous Next

Começando com o EpubReader

A maneira recomendada de instalar o EpubReader é usando o NuGet. Por favor, use o comando a seguir para uma instalação tranquila.

Instalar EpubReader via NuGet

NuGet\Install-Package VersOne.Epub -Version 3.2.0 

Você também pode instalá-lo manualmente; baixe os arquivos da versão mais recente diretamente do repositório GitHub.

Como carregar e ler um livro EPUB via biblioteca .NET

A biblioteca de código aberto EpubReader oferece suporte total ao carregamento e leitura de livros EPUB em aplicações .NET. A biblioteca inclui diversos métodos úteis para manipular livros EPUB, como carregar o livro na memória, imprimir o título do livro, imprimir o autor do livro, imprimir o índice, imprimir um capítulo específico do livro, imprimir todos os capítulos do livro, e assim por diante. O exemplo de código a seguir demonstra como carregar e imprimir um livro EPUB usando a biblioteca.

Ler livro EPUB via biblioteca .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();
}

Extrair texto puro de um livro EPUB via C#

A biblioteca de código aberto EpubReader permite que desenvolvedores de software carreguem um livro EPUB e extraiam texto puro dele usando código C# .NET. Observe que você precisa instalar o NuGet HtmlAgilityPack para realizar essa tarefa de forma tranquila. O exemplo a seguir demonstra como extrair o texto puro de todo o livro com apenas algumas linhas de código .NET.

Extrair Texto Simples de um Livro EPUB 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();
        }
    }
}

Extrair o índice de um livro EPUB via API C#

A biblioteca de código aberto EpubReader permite que desenvolvedores de software carreguem um livro EPUB e extraiam texto puro dele usando código C# .NET. Observe que é necessário instalar o pacote NuGet HtmlAgilityPack para realizar essa tarefa de forma fluida. O exemplo a seguir demonstra como extrair o texto puro de todo o livro com apenas algumas linhas de código .NET.

Como Extrair o Sumário de um Livro EPUB via 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);
            }
        }
    }
}
 Português