使用 C# .NET 编辑 EPUB 元数据

EPUB 文件是一种数字电子书格式,包含文本、图像和多媒体元素,使用 HTML 和 CSS 等标准 Web 技术进行格式化。 EPUB 元数据是指嵌入在 EPUB 文件中的基本信息,包括标题、作者、出版商和语言等详细信息,可实现数字电子书的准确编目和组织。在本文中,我们将讨论如何使用 C# 以编程方式读取、编辑和更新 EPUB 元数据值,包括 Dublin Core 项目集。

以下是所涵盖主题的快速链接:

用于元数据编辑的.NET API

GroupDocs.Metadata 提供 .NET API 以自动管理 .NET 应用程序中各种文件格式的元数据。该 API 允许读取、更新、添加、清理和删除多种文件格式的元数据。今天,我们将使用这个API来处理EPUB格式电子书的元数据。

您可以从 下载部分 下载 DLL 或 MSI 安装程序,或通过 NuGet 在您的 .NET 应用程序中安装 API。

PM> Install-Package GroupDocs.Metadata

使用 C# 修改 EPUB 元数据

如果您想以 .NET 开发人员的身份更改 EPUB 元数据属性,可以按以下步骤操作:

  • 使用 Metadata 类加载 EPUB 电子书。
  • 使用 GetRootPackage 方法提取元数据根包。
  • 现在您可以轻松获取并查看 EPUB 包的所有元数据属性。
  • 根据需要更新属性值。
  • 使用 Save 方法保存带有更新的元数据值的电子书文件。

以下是简短的 C# 代码片段,显示了读取和更新 EPUB 元数据属性的上述步骤:

读取 EPUB 元数据

// 使用 C# 读取 EPUB 元数据
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 元数据属性。

// 使用 C# 更新 EPUB 元数据
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");
}

使用 C# 修改 EPUB Dublin 核心元数据

都柏林核心元数据是描述物理和数字资源的一组项目。您可以使用非常相似的 C# 代码轻松更改都柏林核心元数据属性。

阅读都柏林核心

以下几行提取都柏林核心元数据项进行分析:

// 使用 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 属性,如下面的代码所示:

// 使用 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 元数据操作的世界。首先,我们探讨如何使用 C# 以编程方式读取和编辑 EPUB 元数据属性。然后我们对电子书的都柏林核心项目集做了同样的事情。

有关详细的 API 信息,鼓励读者查阅 API 参考GitHub 存储库和 文档

问题和进一步讨论可以直接到提供的论坛

也可以看看