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