مكتبة .NET لقراءة مستندات EPUB

واجهة برمجة تطبيقات .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 في دليل وجمع بعض الإحصاءات.

Previous Next

البدء في استخدام 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);
            }
        }
    }
}
 عربي