Thư viện .NET cho Đọc Tài liệu EPUB
API .NET mã nguồn mở để Truy cập & Đọc tệp EPUB, trích xuất nội dung và chuyển EPUB sang PDF trong các ứng dụng C#.
EpubReader là một thư viện .NET mã nguồn mở rất mạnh mẽ cho phép các nhà phát triển phần mềm mở và đọc tài liệu EPUB trong các ứng dụng C# của họ. Thư viện này hoàn toàn hỗ trợ các tiêu chuẩn EPUB 2 (2.0, 2.0.1) cũng như EPUB 3 (3.0, 3.0.1, 3.1, 3.2). Thư viện EpubReader chỉ hỗ trợ việc đọc các tệp EPUB và hiện tại chưa cung cấp hỗ trợ ghi.
Thư viện EpubReader hỗ trợ phân tích các sách EPUB và nội dung đã trích xuất mà không cần bất kỳ phụ thuộc bên ngoài nào. Một tài liệu EPUB có thể là một tập hợp các tệp HTML bao gồm CSS, hình ảnh, phông chữ và hơn thế nữa. Do đó nó có thể được hiển thị giống như một trình duyệt web với các tệp HTML khác. Thư viện cho phép người dùng trích xuất văn bản thuần của toàn bộ sách, hỗ trợ phân tích chương, trích xuất bìa sách, và duyệt qua tất cả các tệp EPUB trong một thư mục để thu thập một số thống kê.
Bắt đầu với EpubReader
Cách khuyến nghị để cài đặt EpubReader là sử dụng NuGet. Vui lòng sử dụng lệnh sau để cài đặt một cách suôn sẻ.
Cài đặt EpubReader qua NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Bạn cũng có thể cài đặt thủ công; tải xuống các tệp phát hành mới nhất trực tiếp từ kho GitHub.
Cách tải và đọc sách EPUB qua Thư viện .NET
Thư viện mã nguồn mở EpubReader hỗ trợ đầy đủ việc tải và đọc sách EPUB trong các ứng dụng .NET. Thư viện đã bao gồm nhiều phương thức hữu ích để xử lý sách EPUB, chẳng hạn như tải sách vào bộ nhớ, in tiêu đề sách, in tác giả sách, in mục lục, in một chương cụ thể của sách, in tất cả các chương của sách, và nhiều hơn nữa. Ví dụ mã sau đây minh họa cách tải và in một cuốn sách EPUB bằng thư viện.
Đọc sách EPUB qua Thư viện .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();
}
Trích xuất văn bản thuần từ sách EPUB bằng C#
Thư viện mã nguồn mở EpubReader cho phép các nhà phát triển phần mềm tải một cuốn sách EPUB và trích xuất văn bản thuần từ nó bằng mã C# .NET. Lưu ý rằng bạn cần cài đặt HtmlAgilityPack NuGet để thực hiện nhiệm vụ này một cách suôn sẻ. Ví dụ sau đây minh họa cách trích xuất văn bản thuần của toàn bộ cuốn sách chỉ với một vài dòng mã .NET.
Trích xuất Văn bản Thuần từ một Sách EPUB bằng 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();
}
}
}
Trích xuất mục lục từ sách EPUB bằng API C#
Thư viện mã nguồn mở EpubReader cho phép các nhà phát triển phần mềm tải một cuốn sách EPUB và trích xuất văn bản thuần từ nó bằng mã C# .NET. Lưu ý rằng bạn cần cài đặt gói NuGet HtmlAgilityPack để thực hiện nhiệm vụ này một cách suôn sẻ. Ví dụ sau đây minh họa cách trích xuất văn bản thuần của toàn bộ cuốn sách chỉ với một vài dòng mã .NET.
Cách Trích xuất Mục lục từ Sách EPUB bằng .NET API?
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);
}
}
}
}