使用 Java 编辑 EPUB 元数据

在上一篇文章中,我们讨论了使用 C# 管理 EPUB 元数据和 Dublin Core。今天,我们将学习如何使用 Java 以编程方式读取、编辑和更新 EPUB 元数据属性,包括 Dublin Core 属性集。

EPUB 文件是一种数字图书格式,包括文本、图片和交互元素。它是使用 HTML 和 CSS 等常见的 Web 技术制作的。

EPUB 元数据是指存储在 EPUB 文件中的重要信息,例如标题、作者、出版商和语言。这些数据有助于正确组织数字图书。

以下是我们将讨论的主题:

用于编辑元数据的 Java API

GroupDocs.Metadata 提供了一个 Java API,旨在自动化 Java 应用程序中不同文件格式的元数据管理。此 API 允许读取、更新、添加、清理和删除各种文件类型的元数据。在今天的讨论中,我们将利用此 API 来处理 EPUB 格式电子书的元数据。

您可以从下载部分获取 JAR 文件,或者将最新的存储库和依赖项 Maven 配置合并到您的 Java 应用程序中。

<repository>
    <id>GroupDocsJavaAPI</id>
    <name>GroupDocs Java API</name>
    <url>https://releases.groupdocs.com/java/repo/</url>
</repository>

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-metadata</artifactId>
    <version>23.10</version>
</dependency>

使用Java修改EPUB元数据

作为 Java 开发人员,如果您想要修改 EPUB 元数据属性,请按照以下步骤操作:

  1. 使用 Metadata 类加载 EPUB 电子书。
  2. 使用 getRootPackageGeneric 方法提取元数据根包。
  3. 现在,您可以使用相应的 getter 方法轻松查看 EPUB 包的所有元数据属性。
  4. 使用相应的 setter 方法根据需要更新属性值。
  5. 使用 save 方法保存具有更新的元数据值的电子书文件。

下面是 Java 代码片段,说明了读取和更新 EPUB 元数据属性的步骤:

读取 EPUB 元数据

首先,您可以通过以下方式使用 Java 读取 EPUB 元数据:

// 使用 Java 读取 EPUB 元数据
try (Metadata metadata = new Metadata("path/ebook.epub")) {
    EpubRootPackage root = metadata.getRootPackageGeneric();

    System.out.println(root.getEpubPackage().getVersion());
    System.out.println(root.getEpubPackage().getUniqueIdentifier());
    System.out.println(root.getEpubPackage().getImageCover() != null ? root.getEpubPackage().getImageCover().length : 0);
}

更新 EPUB 元数据

以下 Java 源代码演示了如何获取和更新 EPUB 文件的 EPUB 元数据属性:

// 使用 Java 更新 EPUB 元数据
try (Metadata metadata = new Metadata("path/ebook.epub")) {
    EpubRootPackage root = metadata.getRootPackageGeneric();

    root.getEpubPackage().setCreator("GroupDocs");
    root.getEpubPackage().setDescription("test e-book");
    root.getEpubPackage().setFormat("EPUB");
    root.getEpubPackage().setDate(new Date().toString());

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

使用 Java 修改 EPUB Dublin 核心元数据

都柏林核心元数据由一些描述物理和数字资源的项目组成。您可以使用 Java 代码以类似于 EPUB 元数据的方式修改 Dublin Core 元数据属性。

阅读都柏林核心

以下代码行演示了如何提取都柏林核心元数据项进行分析:

// 使用 Java 读取都柏林核心元数据
try (Metadata metadata = new Metadata("path/ebook.epub")) {
    EpubRootPackage root = metadata.getRootPackageGeneric();

    System.out.println(root.getDublinCorePackage().getRights());
    System.out.println(root.getDublinCorePackage().getPublisher());
    System.out.println(root.getDublinCorePackage().getTitle());
    System.out.println(root.getDublinCorePackage().getCreator());
    System.out.println(root.getDublinCorePackage().getLanguage());
    System.out.println(root.getDublinCorePackage().getDate());
}

更新都柏林核心

您可以根据需要更改特定的 Dublin Core 属性,如下面的代码所示:

// 使用 Java 更新都柏林核心元数据
try (Metadata metadata = new Metadata("path/ebook.epub")) {
    EpubRootPackage root = metadata.getRootPackageGeneric();

    root.getDublinCorePackage().setProperties(new WithNameSpecification("dc:creator"), new PropertyValue("GroupDocs"));
    root.getDublinCorePackage().setProperties(new WithNameSpecification("dc:description"), new PropertyValue("test e-book"));
    root.getDublinCorePackage().setProperties(new WithNameSpecification("dc:title"), new PropertyValue("test EPUB"));
    root.getDublinCorePackage().setProperties(new WithNameSpecification("dc:date"), new PropertyValue(new Date().toString()));

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

获得免费许可证

如果您想充分体验该API的功能,可以获取免费临时许可证

结论

在本文中,我们研究了 EPUB 元数据操作。最初,我们探索了如何使用 Java 以编程方式读取和修改 EPUB 元数据属性。后来,我们将相同的技术应用于电子书中的都柏林核心项目集。

有关详细的 API 信息,鼓励读者参考:

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

也可以看看