C# .NET を使用した EPUB メタデータの編集

EPUB ファイルは、HTML や CSS などの標準 Web テクノロジーを使用してフォーマットされた、テキスト、画像、マルチメディア要素を含むデジタル電子ブック形式です。 EPUB メタデータは、タイトル、著者、発行者、言語などの詳細を含む、EPUB ファイル内に埋め込まれた重要な情報を指し、デジタル電子ブックの正確なカタログ化と編成を可能にします。この記事では、C# を使用して、Dublin Core の項目セットを含む EPUB メタデータ値をプログラムで読み取り、編集、更新する方法について説明します。

以下は、対象となるトピックへのクイック リンクです。

メタデータ編集用の .NET API

GroupDocs.Metadata は、.NET アプリケーション内のさまざまなファイル形式の メタデータ管理を自動化する .NET API を提供します。 API を使用すると、多くのファイル形式のメタデータの読み取り、更新、追加、消去、削除が可能になります。今回はこのAPIを使ってEPUB形式の電子書籍のメタデータを扱います。

ダウンロード セクション から DLL または MSI インストーラーをダウンロードするか、NuGet 経由で .NET アプリケーションに API をインストールできます。

PM> Install-Package GroupDocs.Metadata

C# を使用した EPUB メタデータの変更

.NET 開発者として EPUB メタデータ プロパティを変更したい場合は、次の方法で変更できます。

  • Metadata クラスを使用して EPUB 電子書籍を読み込みます。
  • GetRootPackage メソッドを使用してメタデータ ルート パッケージを抽出します。
  • EPUB パッケージのすべてのメタデータ プロパティを簡単に取得して表示できるようになりました。
  • 必要に応じてプロパティ値を更新します。
  • Save メソッドを使用して、更新されたメタデータ値を含む電子書籍ファイルを保存します。

EPUB メタデータ プロパティを読み取り、更新する上記の手順を示す短い C# コードを次に示します。

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

Dublin Core メタデータは、物理的リソースとデジタル リソースを説明する一連のいくつかの項目です。非常によく似た C# コードを使用して、Dublin Core メタデータ プロパティを簡単に変更できます。

ダブリン・コアを読む

次の数行は、分析するダブリン コア メタデータ項目を抽出しています。

// C# を使用して Dublin Core メタデータを読み取る
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# を使用して Dublin Core メタデータを更新する
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 の楽しさを最大限に体験したい場合は、[一時ライセンスを無料で取得]することができます11

結論

この記事では、EPUB メタデータ操作の世界を探りました。まず、C# を使用して EPUB メタデータ プロパティをプログラムで読み取り、編集する方法を検討します。次に、電子書籍の Dublin Core アイテム セットに対しても同じことを行いました。

API の詳細情報については、API リファレンスGitHub リポジトリおよび ドキュメント を参照することをお勧めします。

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

関連項目