Chỉnh sửa siêu dữ liệu EPUB bằng C# .NET

Tệp EPUB là định dạng sách điện tử kỹ thuật số chứa văn bản, hình ảnh và các thành phần đa phương tiện, được định dạng bằng các công nghệ web tiêu chuẩn như HTML và CSS. Siêu dữ liệu EPUB đề cập đến thông tin cần thiết được nhúng trong tệp EPUB, bao gồm các chi tiết như tiêu đề, tác giả, nhà xuất bản và ngôn ngữ, cho phép lập danh mục và tổ chức sách điện tử kỹ thuật số một cách chính xác. Trong bài viết này, chúng ta sẽ thảo luận về cách đọc, chỉnh sửa và cập nhật các giá trị siêu dữ liệu EPUB theo chương trình, bao gồm bộ mục Dublin Core bằng C#.

Sau đây là các liên kết nhanh đến các chủ đề được đề cập:

API .NET để chỉnh sửa siêu dữ liệu

GroupDocs.Metadata cung cấp .NET API để tự động hóa việc quản lý siêu dữ liệu của các định dạng tệp khác nhau trong các ứng dụng .NET. API cho phép đọc, cập nhật, thêm, xóa và xóa siêu dữ liệu cho nhiều định dạng tệp. Hôm nay, chúng tôi sẽ sử dụng API này để xử lý siêu dữ liệu của sách điện tử có định dạng EPUB.

Bạn có thể tải xuống trình cài đặt DLL hoặc MSI từ phần tải xuống hoặc cài đặt API trong ứng dụng .NET của bạn thông qua NuGet.

PM> Install-Package GroupDocs.Metadata

Sửa đổi siêu dữ liệu EPUB bằng C#

Nếu bạn muốn thay đổi thuộc tính siêu dữ liệu EPUB với tư cách là nhà phát triển .NET, đây là cách bạn có thể thực hiện:

  • Tải Sách điện tử EPUB bằng lớp Siêu dữ liệu.
  • Trích xuất gói gốc siêu dữ liệu bằng phương pháp GetRootPackage.
  • Giờ đây, bạn có thể dễ dàng tìm nạp để xem tất cả thuộc tính siêu dữ liệu của gói EPUB.
  • Cập nhật các giá trị thuộc tính theo yêu cầu.
  • Lưu tệp sách điện tử với các giá trị siêu dữ liệu được cập nhật bằng phương pháp Lưu.

Dưới đây là các đoạn mã C# ngắn hiển thị các bước trên để đọc và cập nhật thuộc tính siêu dữ liệu EPUB:

Đọc siêu dữ liệu EPUB

// Đọc siêu dữ liệu EPUB bằng C#
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);
}

Cập nhật siêu dữ liệu EPUB

Mã nguồn C# sau đây tìm nạp và cập nhật các thuộc tính siêu dữ liệu EPUB của tệp EPUB.

// Cập nhật siêu dữ liệu EPUB bằng C#
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");
}

Sửa đổi siêu dữ liệu EPUB Dublin Core bằng C#

Siêu dữ liệu Dublin Core là một tập hợp một số mục mô tả các tài nguyên vật lý và kỹ thuật số. Bạn có thể dễ dàng thay đổi các thuộc tính siêu dữ liệu Dublin Core bằng cách sử dụng mã C# rất giống nhau.

Đọc lõi Dublin

Một số dòng sau đang trích xuất các mục siêu dữ liệu Dublin Core để phân tích:

// Đọc siêu dữ liệu Dublin Core bằng 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);
}

Cập nhật lõi Dublin

Sau đó, bạn có thể thay đổi các thuộc tính Dublin Core cụ thể cho phù hợp như trong mã bên dưới:

// Cập nhật siêu dữ liệu Dublin Core bằng 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");
}

Nhận giấy phép miễn phí

Nếu bạn muốn trải nghiệm niềm vui của API này ở mức tối đa, bạn có thể nhận giấy phép tạm thời miễn phí.

Phần kết luận

Trong bài viết này, chúng tôi đã khám phá thế giới thao tác siêu dữ liệu EPUB. Đầu tiên, chúng ta khám phá cách đọc và chỉnh sửa các thuộc tính siêu dữ liệu EPUB theo chương trình bằng C#. Sau đó, chúng tôi cũng làm như vậy với bộ mục Dublin Core dành cho sách điện tử.

Để biết thông tin chi tiết về API, người đọc nên tham khảo tài liệu tham khảo API, GitHub & tài liệu.

Các câu hỏi và thảo luận thêm có thể được chuyển đến diễn đàn được cung cấp.

Xem thêm