Редактирование метаданных EPUB с использованием C# .NET

Файл EPUB — это формат цифровой электронной книги, содержащий текст, изображения и мультимедийные элементы, отформатированный с использованием стандартных веб-технологий, таких как HTML и CSS. Метаданные EPUB относятся к важной информации, встроенной в файлы EPUB, включая такие сведения, как название, автор, издатель и язык, что обеспечивает точную каталогизацию и организацию цифровых электронных книг. В этой статье мы обсудим, как программно читать, редактировать и обновлять значения метаданных EPUB, включая набор элементов Dublin Core, с использованием C#.

Ниже приведены быстрые ссылки на затронутые темы:

.NET API для редактирования метаданных

GroupDocs.Metadata предоставляет .NET API для автоматизации управления метаданными различных форматов файлов в приложениях .NET. API позволяет читать, обновлять, добавлять, очищать и удалять метаданные для многих форматов файлов. Сегодня мы будем использовать этот API для работы с метаданными электронных книг в формате EPUB.

Вы можете загрузить библиотеки DLL или установщик MSI из раздела загрузок или установить API в свое .NET-приложение через NuGet.

PM> Install-Package GroupDocs.Metadata

Изменение метаданных EPUB с помощью C#

Если вы хотите изменить свойства метаданных EPUB как разработчик .NET, вы можете это сделать следующим образом:

  • Загрузите электронную книгу EPUB, используя класс Метаданные.
  • Извлеките корневой пакет метаданных с помощью метода GetRootPackage.
  • Теперь вы можете легко просмотреть все свойства метаданных пакета EPUB.
  • При необходимости обновите значения свойств.
  • Сохраните файл электронной книги с обновленными значениями метаданных, используя метод Save.

Ниже приведены короткие фрагменты кода C#, демонстрирующие описанные выше шаги по чтению и обновлению свойств метаданных EPUB:

Чтение метаданных EPUB

// Чтение метаданных EPUB с помощью C#
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

Следующий исходный код C# извлекает и обновляет свойства метаданных EPUB файла EPUB.

// Обновите метаданные EPUB с помощью 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");
}

Изменение метаданных EPUB Dublin Core с помощью C#

Метаданные Dublin Core — это набор нескольких элементов, описывающих физические и цифровые ресурсы. Вы можете легко изменить свойства метаданных Dublin Core, используя очень похожий код C#.

Читать Дублинское ядро

Следующие несколько строк извлекают элементы метаданных Dublin Core для анализа:

// Чтение метаданных Dublin Core с помощью C#
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);
}

Обновление Дублинского ядра

Затем вы можете соответствующим образом изменить определенные свойства Dublin Core, как показано в коде ниже:

// Обновите метаданные Dublin Core с помощью C#.
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");
}

Получение бесплатной лицензии

Если вы хотите ощутить радость от этого API на полную мощность, вы можете получить временную лицензию бесплатно.

Заключение

В этой статье мы исследовали мир манипулирования метаданными EPUB. Сначала мы рассмотрим, как программно читать и редактировать свойства метаданных EPUB с помощью C#. Затем мы сделали то же самое с набором материалов Dublin Core для электронных книг.

Для получения подробной информации об API читателям рекомендуется обратиться к справке по API, репозиторию GitHub и документации.

Вопросы и дальнейшее обсуждение можно направлять на предусмотренный форум.

Смотрите также