Javaを使用したEPUBメタデータ編集

前回の記事では、C# を使用した EPUB メタデータと Dublin Core の管理について説明しました。今日は、Java を使用して、Dublin Core のプロパティ セットを含む EPUB メタデータ プロパティをプログラムで読み取り、編集、更新する方法を学びます。

EPUB ファイルは、テキスト、画像、インタラクティブな要素を含むデジタル ブック形式です。 HTML や CSS などの一般的な Web テクノロジーを使用して作成されています。

EPUB メタデータとは、タイトル、著者、発行者、言語など、EPUB ファイル内に保存されている重要な情報を意味します。このデータは、デジタルブックを適切に整理するのに役立ちます。

ここで取り上げるトピックは次のとおりです。

メタデータ編集用の Java API

GroupDocs.Metadata は、Java アプリケーションのさまざまなファイル形式のメタデータ管理を自動化するように設計された Java API を提供します。この 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. これで、それぞれのゲッター メソッドを使用して、EPUB パッケージのすべてのメタデータ プロパティを簡単に表示できるようになりました。
  4. 必要に応じて、それぞれのセッター メソッドを使用してプロパティ値を更新します。
  5. save メソッドを使用して、更新されたメタデータ値を含む eBook ファイルを保存します。

以下は、EPUB メタデータ プロパティを読み取り、更新する手順を示す Java コードのスニペットです。

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 Core メタデータの変更

ダブリンコア メタデータは、物理リソースとデジタルリソースの両方を記述するいくつかの項目で構成されます。 EPUB メタデータと同様の方法で Java コードを使用して、Dublin Core メタデータのプロパティを変更できます。

ダブリン・コアを読む

次のコード行は、分析のために Dublin Core メタデータ項目を抽出する方法を示しています。

// Java を使用して Dublin Core メタデータを読み取る
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 を使用して Dublin Core メタデータを更新する
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 の機能を十分に体験したい場合は、[無料で一時ライセンス] を取得できます11

結論

この記事では、EPUB メタデータの操作について調べました。最初に、Java を使用してプログラムで EPUB メタデータ プロパティを読み取り、変更する方法を検討しました。その後、同じ手法を電子書籍内の Dublin Core アイテム セットに適用しました。

API の詳細情報については、以下を参照することをお勧めします。

質問やさらなる議論は、提供されている フォーラム に送信できます。

関連項目