Perpustakaan .NET untuk Membaca Dokumen EPUB
API .NET Sumber Terbuka untuk Mengakses & Membaca fail EPUB, mengekstrak kandungannya dan menukar EPUB ke PDF dalam aplikasi C#.
EpubReader adalah perpustakaan .NET sumber terbuka yang sangat kuat yang membolehkan pembangun perisian membuka dan membaca dokumen EPUB dalam aplikasi C# mereka sendiri. Perpustakaan ini menyokong sepenuhnya piawaian EPUB 2 (2.0, 2.0.1) serta EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Perpustakaan EpubReader hanya menyokong pembacaan fail EPUB dan belum menyediakan sokongan penulisan buat masa ini.
Perpustakaan EpubReader menyokong penguraian buku EPUB dan kandungan yang diekstrak tanpa sebarang kebergantungan luaran. Dokumen EPUB boleh menjadi koleksi fail HTML termasuk CSS, imej, fon & lain-lain. Oleh itu ia boleh dipaparkan dengan cara yang sama seperti penyemak imbas web memaparkan fail HTML lain. Perpustakaan ini membolehkan pengguna mengekstrak teks biasa keseluruhan buku, sokongan penguraian bab, mengekstrak kulit buku, serta mengulangi semua fail EPUB dalam satu direktori dan mengumpulkan beberapa statistik.
Mula Menggunakan EpubReader
Cara yang disyorkan untuk memasang EpubReader ialah menggunakan NuGet. Sila gunakan perintah berikut untuk pemasangan yang lancar.
Pasang EpubReader melalui NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Anda juga boleh memasangnya secara manual; muat turun fail pelepasan terkini secara langsung dari repositori GitHub.
Cara Memuat & Membaca Buku EPUB melalui Perpustakaan .NET
Pustaka sumber terbuka EpubReader menyokong sepenuhnya pemuatan dan pembacaan buku EPUB dalam aplikasi .NET. Pustaka ini telah menyertakan pelbagai kaedah berguna untuk mengendalikan buku EPUB, seperti memuatkan buku ke dalam memori, mencetak tajuk buku, mencetak pengarang buku, mencetak jadual kandungan, mencetak bab tertentu dalam buku, mencetak semua bab dalam buku, dan sebagainya. Contoh kod berikut menunjukkan cara memuatkan dan mencetak buku EPUB menggunakan pustaka tersebut.
Baca Buku EPUB melalui Perpustakaan .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();
}
Ekstrak Teks Biasa dari Buku EPUB melalui C#
Pustaka sumber terbuka EpubReader membolehkan pembangun perisian memuatkan Buku EPUB dan mengekstrak teks biasa daripadanya menggunakan kod C# .NET. Sila ambil perhatian bahawa anda perlu memasang HtmlAgilityPack NuGet untuk melaksanakan tugas ini dengan lancar. Contoh berikut menunjukkan cara mengekstrak teks biasa keseluruhan buku dengan hanya beberapa baris kod .NET.
Ekstrak Teks Biasa dari Buku EPUB melalui 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 Senarai Isi dari Buku EPUB melalui API C#
Perpustakaan sumber terbuka EpubReader membolehkan pembangun perisian memuatkan Buku EPUB dan mengekstrak teks biasa daripadanya menggunakan kod C# .NET. Sila ambil perhatian bahawa anda perlu memasang HtmlAgilityPack Nuget untuk melaksanakan tugas ini dengan lancar. Contoh berikut menunjukkan cara mengekstrak teks biasa bagi keseluruhan buku dengan hanya beberapa baris kod .NET.
Cara Mengekstrak Jadual Kandungan dari Buku EPUB melalui 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);
}
}
}
}