ספרייה .NET לקריאת מסמכי EPUB
API פתוח בקוד מקור .NET לגישה וקריאת קובץ EPUB, חילוץ תוכנו והמרת EPUB ל-PDF בתוך אפליקציות C#.
EpubReader היא ספרייה פתוחה מאוד חזקה ב-.NET המאפשרת למפתחי תוכנה לפתוח ולקרוא מסמכי EPUB בתוך יישומי C# שלהם. הספרייה תומכת במלואה בתקני EPUB 2 (2.0, 2.0.1) וכן ב-EPUB 3 (3.0, 3.0.1, 3.1, 3.2). ספריית EpubReader תומכת רק בקריאת קבצי EPUB והיא אינה מספקת תמיכה בכתיבה בשלב זה.
ספריית EpubReader תומכת בפענוח ספרי EPUB ותוכן מחולץ ללא תלות חיצונית. מסמך EPUB יכול להיות אוסף של קבצי HTML כולל CSS, תמונות, גופנים ועוד. ולכן ניתן להציגו באותו אופן שבו דפדפן אינטרנט מציג קבצי HTML אחרים. הספרייה מאפשרת למשתמשים לחלץ את הטקסט הפשוט של כל הספר, תמיכה בפענוח פרקים, חילוץ כריכת הספר, ולעבור על כל קבצי EPUB בתיקייה ולאסוף כמה סטטיסטיקות.
התחלה עם EpubReader
הדרך המומלצת להתקנת EpubReader היא באמצעות NuGet. אנא השתמשו בפקודה הבאה להתקנה חלקה.
התקנת EpubReader באמצעות NuGet
NuGet\Install-Package VersOne.Epub -Version 3.2.0
ניתן גם להתקין זאת ידנית; הורידו את קבצי השחרור האחרונים ישירות ממאגר GitHub.
איך לטעון ולקרוא ספר EPUB באמצעות ספריית .NET
ספריית הקוד הפתוח EpubReader תומכת באופן מלא בטעינה וקריאת ספרי EPUB בתוך יישומי .NET. הספרייה כוללת שיטות שימושיות רבות לטיפול בספרי EPUB, כגון טעינת הספר לזיכרון, הדפסת כותרת הספר, הדפסת מחבר הספר, הדפסת תוכן העניינים, הדפסת פרק מסוים של הספר, הדפסת כל הפרקים של הספר, ועוד. דוגמת הקוד שלהלן מציגה כיצד לטעון ולהדפיס ספר EPUB באמצעות הספרייה.
קריאת ספר EPUB באמצעות ספריית .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();
}
חילוץ טקסט פשוט מספר EPUB באמצעות C#
ספריית הקוד הפתוח EpubReader מאפשרת למפתחי תוכנה לטעון ספר EPUB ולחלץ ממנו טקסט פשוט באמצעות קוד C# .NET. שימו לב שעליכם להתקין את חבילת HtmlAgilityPack ב‑NuGet כדי לבצע משימה זו בצורה חלקה. הדוגמה שלהלן מציגה כיצד לחלץ את הטקסט הפשוט של כל הספר עם רק כמה שורות קוד .NET.
חילוץ טקסט רגיל מספר EPUB באמצעות 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();
}
}
}
חילוץ תוכן עניינים מספר EPUB באמצעות API של C#
ספריית הקוד הפתוח EpubReader מאפשרת למפתחי תוכנה לטעון ספר EPUB ולחלץ ממנו טקסט רגיל באמצעות קוד C# .NET. יש לשים לב שעליכם להתקין את חבילת HtmlAgilityPack Nuget כדי לבצע משימה זו בצורה חלקה. הדוגמה הבאה מציגה כיצד לחלץ את הטקסט הרגיל של כל הספר עם רק כמה שורות קוד .NET.
איך לחלץ תוכן עניינים מספר EPUB באמצעות .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);
}
}
}
}