Bearbeitung von EPUB-Metadaten mit C# .NET

Eine EPUB-Datei ist ein digitales E-Book-Format, das Text, Bilder und Multimedia-Elemente enthält und mit Standard-Webtechnologien wie HTML und CSS formatiert wird. EPUB-Metadaten beziehen sich auf wesentliche Informationen, die in EPUB-Dateien eingebettet sind, einschließlich Details wie Titel, Autor, Herausgeber und Sprache, und ermöglichen eine genaue Katalogisierung und Organisation digitaler E-Books. In diesem Artikel besprechen wir, wie EPUB-Metadatenwerte, einschließlich der Dublin Core-Elementgruppe, mithilfe von C# programmgesteuert gelesen, bearbeitet und aktualisiert werden.

Im Folgenden finden Sie schnelle Links zu den behandelten Themen:

.NET-API für die Metadatenbearbeitung

GroupDocs.Metadata bietet eine .NET-API zur Automatisierung der Metadatenverwaltung verschiedener Dateiformate in .NET-Anwendungen. Die API ermöglicht das Lesen, Aktualisieren, Hinzufügen, Bereinigen und Entfernen der Metadaten für viele Dateiformate. Heute werden wir diese API verwenden, um mit Metadaten von E-Books im EPUB-Format umzugehen.

Sie können die DLLs oder das MSI-Installationsprogramm aus dem Download-Bereich herunterladen oder die API über NuGet in Ihrer .NET-Anwendung installieren.

PM> Install-Package GroupDocs.Metadata

Ändern von EPUB-Metadaten mit C#

Wenn Sie als .NET-Entwickler EPUB-Metadateneigenschaften ändern möchten, gehen Sie wie folgt vor:

  • Laden Sie das EPUB-eBook mit der Klasse Metadata.
  • Extrahieren Sie das Metadaten-Stammpaket mit der GetRootPackage-Methode.
  • Jetzt können Sie ganz einfach alle Metadateneigenschaften des EPUB-Pakets abrufen, um sie anzuzeigen.
  • Aktualisieren Sie die Eigenschaftswerte nach Bedarf.
  • Speichern Sie die eBook-Datei mit den aktualisierten Metadatenwerten mithilfe der Save-Methode.

Hier sind die kurzen Teile des C#-Codes, die die oben genannten Schritte zum Lesen und Aktualisieren der EPUB-Metadateneigenschaften zeigen:

Lesen Sie EPUB-Metadaten

// EPUB-Metadaten mit C# lesen
using (Metadata metadata = new Metadata("path/ebook.epub"))
{
    var root = metadata.GetRootPackage<EpubRootPackage>();

    Console.WriteLine(root.EpubPackage.Version);
    Console.WriteLine(root.EpubPackage.UniqueIdentifier);
    Console.WriteLine(root.EpubPackage.ImageCover != null ? root.EpubPackage.ImageCover.Length : 0);
    Console.WriteLine(root.EpubPackage.Description);
    Console.WriteLine(root.EpubPackage.Title);
}

EPUB-Metadaten aktualisieren

Der folgende C#-Quellcode ruft die EPUB-Metadateneigenschaften der EPUB-Datei ab und aktualisiert sie.

// Aktualisieren Sie EPUB-Metadaten mit C#
using (Metadata metadata = new Metadata("path/ebook.epub"))
{
    var root = metadata.GetRootPackage<EpubRootPackage>();

    root.EpubPackage.Creator = "GroupDocs";
    root.EpubPackage.Description = "metadata updated e-book";
    root.EpubPackage.Format = "EPUB";
    root.EpubPackage.Date = DateTime.Now.ToString();
 
    metadata.Save("path/ebook.epub");
}

Ändern der EPUB-Dublin-Core-Metadaten mit C#

Dublin Core Metadaten sind eine Reihe von Elementen, die die physischen und digitalen Ressourcen beschreiben. Sie können die Dublin Core-Metadateneigenschaften einfach mit sehr ähnlichem C#-Code ändern.

Lesen Sie Dublin Core

Die folgenden paar Zeilen extrahieren Dublin Core-Metadatenelemente zur Analyse:

// Dublin Core-Metadaten mit C# lesen
using (Metadata metadata = new Metadata("path/ebook.epub"))
{
    var root = metadata.GetRootPackage<EpubRootPackage>();

    Console.WriteLine(root.DublinCorePackage.Rights);
    Console.WriteLine(root.DublinCorePackage.Publisher);
    Console.WriteLine(root.DublinCorePackage.Title);
    Console.WriteLine(root.DublinCorePackage.Creator);
    Console.WriteLine(root.DublinCorePackage.Language);
    Console.WriteLine(root.DublinCorePackage.Date);
}

Aktualisieren Sie Dublin Core

Anschließend können Sie bestimmte Dublin Core-Eigenschaften entsprechend ändern, wie im folgenden Code gezeigt:

// Dublin Core-Metadaten mit C# aktualisieren
using (Metadata metadata = new Metadata("path/ebook.epub"))
{
    var root = metadata.GetRootPackage<EpubRootPackage>();

    root.DublinCorePackage.SetProperties(p => p.Name == "dc:creator", new PropertyValue("GroupDocs"));
    root.DublinCorePackage.SetProperties(p => p.Name == "dc:description", new PropertyValue("metadata updated e-book"));
    root.DublinCorePackage.SetProperties(p => p.Name == "dc:title", new PropertyValue("Sample EPUB"));
    root.DublinCorePackage.SetProperties(p => p.Name == "dc:date", new PropertyValue(DateTime.Now.ToString()));

    metadata.Save("path/ebook.epub");
}

Eine kostenlose Lizenz erhalten

Wenn Sie die Freude an dieser API in vollem Umfang erleben möchten, können Sie eine temporäre Lizenz kostenlos erwerben.

Abschluss

In diesem Artikel haben wir die Welt der EPUB-Metadatenmanipulation erkundet. Zunächst untersuchen wir, wie man EPUB-Metadateneigenschaften mithilfe von C# programmgesteuert liest und bearbeitet. Dann haben wir das Gleiche für den Dublin Core-Artikelsatz für die E-Books gemacht.

Für detaillierte API-Informationen werden Leser gebeten, die API-Referenz, das GitHub-Repository und die Dokumentation zu konsultieren.

Fragen und weitere Diskussionen können an das bereitgestellte Forum gerichtet werden.

Siehe auch