.NET-kirjasto EPUB-dokumenttien lukemiseen
Avoimen lähdekoodin .NET API EPUB-tiedoston käyttämiseen ja lukemiseen, sisällön purkamiseen sekä EPUB:n muuntamiseen PDF:ksi C#-sovelluksissa.
EpubReader on erittäin tehokas avoimen lähdekoodin .NET-kirjasto, jonka avulla ohjelmistokehittäjät voivat avata ja lukea EPUB-dokumentteja omissa C#-sovelluksissaan. Kirjasto tukee täysimääräisesti EPUB-standardeja EPUB 2 (2.0, 2.0.1) sekä EPUB 3 (3.0, 3.0.1, 3.1, 3.2). EpubReader-kirjasto tukee vain EPUB-tiedostojen lukemista, eikä se toistaiseksi tarjoa kirjoitustukea.
EpubReader-kirjasto tukee EPUB-kirjojen ja niiden sisällön jäsentämistä ilman ulkoisia riippuvuuksia. EPUB-dokumentti voi olla kokoelma HTML-tiedostoja, mukaan lukien CSS, kuvat, fontit ja muuta. Näin se voidaan renderöidä samalla tavalla kuin verkkoselain tekee muiden HTML-tiedostojen kanssa. Kirjasto mahdollistaa käyttäjien poimia koko kirjan tavallinen teksti, tukee lukujen jäsentämistä, kirjan kannen poimintaa sekä kaikki EPUB-tiedostot hakemistossa läpikäymisen ja tilastojen keräämisen.
EpubReaderin aloitus
Suositeltu tapa asentaa EpubReader on käyttää NuGetia. Käytä seuraavaa komentoa sujuvaan asennukseen.
Asenna EpubReader NuGetin kautta
NuGet\Install-Package VersOne.Epub -Version 3.2.0
Voit myös asentaa sen manuaalisesti; lataa uusimmat julkaisutiedostot suoraan GitHub-varastosta.
Kuinka ladata ja lukea EPUB-kirja .NET-kirjaston avulla
Avoimen lähdekoodin EpubReader-kirjasto tukee täysin EPUB-kirjojen lataamista ja lukemista .NET-sovelluksissa. Kirjasto sisältää lukuisia hyödyllisiä menetelmiä EPUB-kirjojen käsittelyyn, kuten kirjan lataaminen muistiin, kirjan nimen tulostaminen, kirjan tekijän tulostaminen, sisällysluettelon tulostaminen, tietyn luvun tulostaminen, kaikkien lukujen tulostaminen ja niin edelleen. Seuraava koodiesimerkki näyttää, miten ladata ja tulostaa EPUB-kirja käyttäen kirjastoa.
Lue EPUB-kirja .NET-kirjaston avulla
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();
}
Poimi pelkkä teksti EPUB-kirjasta C#:n avulla
Avoimen lähdekoodin EpubReader-kirjasto mahdollistaa ohjelmistokehittäjille EPUB-kirjan lataamisen ja pelkän tekstin poimimisen siitä C# .NET -koodilla. Huomaa, että sinun on asennettava HtmlAgilityPack NuGet, jotta tehtävä sujuu sujuvasti. Seuraava esimerkki näyttää, miten poimia koko kirjan pelkkä teksti vain muutamalla .NET-koodirivillä.
Poimi tavallinen teksti EPUB-kirjasta C#:n avulla
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();
}
}
}
Poimi sisällysluettelo EPUB-kirjasta C#-API:n avulla
Avoimen lähdekoodin EpubReader-kirjasto mahdollistaa ohjelmistokehittäjille EPUB-kirjan lataamisen ja sen pelkän tekstin poimimisen C# .NET -koodilla. Huomaa, että sinun on asennettava HtmlAgilityPack Nuget, jotta tehtävä sujuu sujuvasti. Seuraava esimerkki näyttää, miten koko kirjan pelkkä teksti voidaan poimia vain muutamalla .NET-koodirivillä.
Kuinka poimia sisällysluettelo EPUB-kirjasta .NET API:n avulla?
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);
}
}
}
}