Edição de metadados EPUB usando C# .NET

Um arquivo EPUB é um formato de e-book digital que contém texto, imagens e elementos multimídia, formatados usando tecnologias padrão da web, como HTML e CSS. Os metadados EPUB referem-se a informações essenciais incorporadas nos arquivos EPUB, incluindo detalhes como título, autor, editora e idioma, permitindo catalogação e organização precisas de e-books digitais. Neste artigo, discutiremos como ler, editar e atualizar programaticamente valores de metadados EPUB, incluindo o conjunto de itens Dublin Core usando C#.

A seguir estão links rápidos para os tópicos abordados:

API .NET para edição de metadados

GroupDocs.Metadata fornece API .NET para automatizar o gerenciamento de metadados de vários formatos de arquivo em aplicativos .NET. A API permite ler, atualizar, adicionar, limpar e remover metadados para muitos formatos de arquivo. Hoje, usaremos esta API para lidar com metadados de e-books no formato EPUB.

Você pode baixar as DLLs ou o instalador MSI na seção de downloads ou instalar a API em seu aplicativo .NET via NuGet.

PM> Install-Package GroupDocs.Metadata

Modificando metadados EPUB com C#

Se você deseja alterar as propriedades de metadados do EPUB como desenvolvedor .NET, veja como fazer isso:

  • Carregue o eBook EPUB usando a classe Metadata.
  • Extraia o pacote raiz de metadados usando o método GetRootPackage.
  • Agora você pode facilmente visualizar todas as propriedades de metadados do pacote EPUB.
  • Atualize os valores da propriedade conforme necessário.
  • Salve o arquivo do e-book com os valores de metadados atualizados usando o método Save.

Aqui estão os pequenos trechos de código C# que mostram as etapas acima para ler e atualizar as propriedades de metadados do EPUB:

Ler metadados EPUB

// Leia metadados EPUB usando 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);
}

Atualizar metadados EPUB

O código-fonte C# a seguir busca e atualiza as propriedades de metadados EPUB do arquivo EPUB.

// Atualizar metadados EPUB usando 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");
}

Modificando metadados EPUB Dublin Core com C#

Os metadados Dublin Core são um conjunto de alguns itens que descrevem os recursos físicos e digitais. Você pode alterar facilmente as propriedades de metadados do Dublin Core usando código C# muito semelhante.

Leia Dublin Core

As linhas a seguir extraem itens de metadados do Dublin Core para análise:

// Leia metadados Dublin Core usando 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);
}

Atualizar Dublin Core

Em seguida, você pode alterar propriedades específicas do Dublin Core de acordo, conforme mostrado no código abaixo:

// Atualizar metadados Dublin Core usando 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");
}

Obtendo uma licença gratuita

Se quiser experimentar a alegria desta API em sua capacidade total, você pode obter uma licença temporária gratuitamente.

Conclusão

Neste artigo, exploramos o mundo da manipulação de metadados EPUB. Primeiro, exploramos como ler e editar programaticamente propriedades de metadados EPUB usando C#. Em seguida, fizemos o mesmo com o conjunto de itens Dublin Core para e-books.

Para obter informações detalhadas sobre a API, os leitores são incentivados a consultar a referência da API, o repositório GitHub e a documentação.

Perguntas e discussões adicionais podem ser direcionadas para o fórum fornecido.

Veja também