Perpustakaan .NET untuk Membaca Dokumen EPUB
API .NET Open Source untuk Mengakses & Membaca file EPUB, mengekstrak isinya, dan mengonversi EPUB ke PDF dalam aplikasi C#.
EpubReader adalah perpustakaan .NET sumber terbuka yang sangat kuat yang memungkinkan pengembang perangkat lunak membuka dan membaca dokumen EPUB di dalam aplikasi C# mereka sendiri. Perpustakaan ini sepenuhnya mendukung standar EPUB 2 (2.0, 2.0.1) serta EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Perpustakaan EpubReader hanya mendukung pembacaan file EPUB dan saat ini belum menyediakan dukungan penulisan.
Perpustakaan EpubReader mendukung parsing buku EPUB dan konten yang diekstrak tanpa ketergantungan eksternal apa pun. Dokumen EPUB dapat berupa kumpulan file HTML termasuk CSS, gambar, font, dan lainnya. Jadi dapat dirender dengan cara yang sama seperti peramban web menampilkan file HTML lainnya. Perpustakaan ini memungkinkan pengguna mengekstrak teks biasa dari seluruh buku, dukungan parsing bab, mengekstrak sampul buku, serta mengiterasi semua file EPUB dalam sebuah direktori dan mengumpulkan beberapa statistik.
Memulai dengan EpubReader
Cara yang direkomendasikan untuk menginstal EpubReader adalah menggunakan NuGet. Silakan gunakan perintah berikut untuk instalasi yang lancar.
Instal EpubReader via NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Anda juga dapat menginstalnya secara manual; unduh file rilis terbaru langsung dari repositori GitHub.
Cara Memuat & Membaca Buku EPUB melalui .NET Library
Perpustakaan open source EpubReader sepenuhnya mendukung pemuatan dan pembacaan buku EPUB di dalam aplikasi .NET. Perpustakaan ini menyertakan banyak metode berguna untuk menangani buku EPUB, seperti memuat buku ke memori, mencetak judul buku, mencetak penulis buku, mencetak daftar isi, mencetak bab tertentu dari buku, mencetak semua bab buku, dan sebagainya. Contoh kode berikut menunjukkan cara memuat dan mencetak buku EPUB menggunakan perpustakaan tersebut.
Baca Buku EPUB via .NET Library
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();
}
Ekstrak Teks Biasa dari Buku EPUB via C#
Perpustakaan open source EpubReader memungkinkan pengembang perangkat lunak untuk memuat Buku EPUB dan mengekstrak teks polos darinya menggunakan kode C# .NET. Harap dicatat bahwa Anda perlu menginstal HtmlAgilityPack NuGet untuk melakukan tugas ini dengan lancar. Contoh berikut menunjukkan cara mengekstrak teks polos dari seluruh buku hanya dengan beberapa baris kode .NET.
Ekstrak Teks Biasa dari Buku 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();
}
}
}
Ekstrak Daftar Isi dari Buku EPUB via API C#
Perpustakaan sumber terbuka EpubReader memungkinkan pengembang perangkat lunak memuat Buku EPUB dan mengekstrak teks polos darinya menggunakan kode C# .NET. Harap dicatat bahwa Anda perlu menginstal HtmlAgilityPack NuGet untuk melakukan tugas ini dengan lancar. Contoh berikut menunjukkan cara mengekstrak teks polos dari seluruh buku hanya dengan beberapa baris kode .NET.
Cara Mengekstrak Daftar Isi dari Buku 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);
}
}
}
}