使用 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 儲存庫和 文件

問題和進一步討論可以直接到提供的論壇

也可以看看