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 リポジトリおよび ドキュメント を参照することをお勧めします。
質問やさらなる議論は、提供されている フォーラム に送信できます。