Sumário
Visão geral
Gerenciar metadados de documentos em diversos formatos de arquivo pode ser desafiador. O GroupDocs.Metadata para .NET simplifica isso ao fornecer um sistema de marcação que unifica propriedades comuns de metadados (por exemplo, Título, Autor, Data de Criação) sob tags. Neste guia prático, exploraremos como localizar, adicionar, copiar, atualizar e remover metadados usando tags com o GroupDocs.Metadata para .NET.
O GroupDocs.Metadata usa tags para rotular propriedades importantes de metadados em um arquivo, independentemente do formato do documento ou do padrão de metadados. Cada tag pertence a uma categoria que agrupa tags relacionadas para facilitar a descoberta.
Por exemplo:
Content Tags: descrevem o conteúdo de um arquivo (por exemplo, idioma, gênero, assunto, avaliação)
Person Tags: identificam pessoas ou organizações relacionadas ao conteúdo (por exemplo, criador do documento, editor, empresa)
Time Tags: representam carimbos de tempo no ciclo de vida do arquivo (por exemplo, data de criação, último horário de modificação, data de impressão)
(Outras categorias incluem Legal, Origin, Tool, etc., cada uma agrupando tags relevantes.)
Usando essas tags, você pode pesquisar e manipular metadados de forma unificada em documentos Word, PDFs, imagens e muito mais. Por exemplo, uma tag “Autor” ou “Criador” na categoria Pessoa corresponderá à propriedade de autor em um documento Word ou PDF sem que você precise conhecer o nome do campo específico de metadados do formato. Isso torna as tags extremamente úteis para organizar arquivos e automatizar tarefas de gerenciamento de metadados.
Casos de uso
Nesta seção, apresentaremos diferentes casos de uso que ilustram aplicações práticas.
Encontrar propriedades de metadados por tag
Um caso de uso comum é encontrar entradas de metadados em um arquivo pela sua tag. Isso é particularmente útil para melhorar a pesquisabilidade – você pode obter informações específicas de qualquer documento sem se preocupar com seu formato.
Etapas
- Carregue o arquivo em um objeto
Metadata. - Encontre propriedades usando
FindProperties()com um predicado baseado em tag. Você pode filtrar por uma tag específica ou por uma categoria inteira. - Percorra os resultados para inspecionar ou usar os metadados.
// Load the source document (e.g., a PowerPoint file)
using (Metadata metadata = new Metadata("source.pptx"))
{
// Find properties tagged as "last editor" or "last modified time"
var properties = metadata.FindProperties(p =>
p.Tags.Contains(Tags.Person.Editor) ||
p.Tags.Contains(Tags.Time.Modified));
// List the found properties and their values
foreach (var property in properties)
{
Console.WriteLine($"Property name: {property.Name}, Value: {property.Value}");
}
}
Adicionar propriedades de metadados por tag
Às vezes, um arquivo pode estar ausente de certos metadados (por exemplo, nenhuma “Data da última impressão” registrada). Usando o GroupDocs.Metadata, você pode adicionar uma propriedade de metadados especificando uma tag, e a API a colocará no pacote de metadados apropriado, se o formato o suportar.
Etapas
- Carregue o arquivo em um objeto
Metadata. - Chame
AddProperties()com um predicado para identificar onde adicionar e forneça o valor da nova propriedade. - Verifique o valor retornado para saber quantas propriedades foram adicionadas.
- Salve o documento (se quiser persistir as alterações).
Por exemplo, o código abaixo adiciona uma data/hora “Última impressão” a um documento se ele ainda não possuir uma:
using (Metadata metadata = new Metadata("source.pdf"))
{
if (metadata.FileFormat != FileFormat.Unknown && !metadata.GetDocumentInfo().IsEncrypted)
{
// Add a "Last Printed" date property if it's missing
int affected = metadata.AddProperties(
p => p.Tags.Contains(Tags.Time.Printed),
new PropertyValue(DateTime.Now));
Console.WriteLine("Properties added: " + affected);
metadata.Save("output.pdf");
}
}
Aqui usamos Tags.Time.Printed – a tag para a data “Impressa” na categoria Tempo. O predicado p.Tags.Contains(Tags.Time.Printed) direciona a propriedade de metadados conhecida. Se a propriedade estiver ausente, AddProperties a adicionará com o valor fornecido (DateTime.Now). O método devolve a quantidade de propriedades adicionadas, que exibimos. Por fim, salvamos o arquivo para persistir os novos metadados.
Copiar propriedades de metadados por tag
Às vezes, você pode querer copiar apenas tipos específicos de metadados, como nomes de autores ou datas de criação. O método CopyTo permite usar um predicado para filtrar as propriedades a serem copiadas. Veja como copiar apenas metadados relacionados a autores ou datas de criação:
Etapas
- Carregue tanto o arquivo fonte quanto o destino usando a classe
Metadata. - Use o método
CopyTopara transferir metadados do fonte para o destino. - Salve o arquivo destino para aplicar os metadados copiados.
using (Metadata sourceMetadata = new Metadata("source.xlsx"))
using (Metadata targetMetadata = new Metadata("target.pptx"))
{
// Copy only Author (Creator) and Creation Date metadata properties
sourceMetadata.CopyTo(targetMetadata, p =>
p.Tags.Contains(Tags.Person.Creator) ||
p.Tags.Contains(Tags.Time.Created));
// Save the changes
targetMetadata.Save();
}
Neste exemplo, apenas os metadados com tags para Criador (nome do autor) e Data de Criação serão copiados do arquivo Excel (source.xlsx) para a apresentação PowerPoint (target.pptx). Essa cópia seletiva oferece controle preciso sobre seus metadados, facilitando a garantia de que os documentos contenham exatamente as informações desejadas.
Atualizar propriedades de metadados por tag
Além de adicionar novos metadados, frequentemente é necessário atualizar valores existentes (por exemplo, corrigir o nome de um autor ou padronizar datas). O GroupDocs.Metadata fornece o método SetProperties() para isso. Ele usa tags para localizar as propriedades alvo e atualiza seus valores. Se a propriedade alvo estiver ausente, SetProperties pode adicioná‑la – combinando efetivamente atualização e inserção em um único passo.
Etapas
- Carregue o arquivo em um objeto
Metadata. - Chame
SetProperties()com um filtro baseado em tag e o novoPropertyValue. - Inspecione a contagem retornada de propriedades afetadas (atualizadas ou adicionadas).
- Salve as alterações no arquivo, se necessário.
Por exemplo, suponha que queiramos atualizar a data de criação e a data de modificação de um documento para a data/hora atuais (útil para redefinir ou padronizar carimbos de tempo):
using (Metadata metadata = new Metadata("source.pdf"))
{
// Update all "Created" or "Modified" date properties to now
int affected = metadata.SetProperties(
p => p.Tags.Contains(Tags.Time.Created) || p.Tags.Contains(Tags.Time.Modified),
new PropertyValue(DateTime.Now));
Console.WriteLine("Properties updated or added: " + affected);
metadata.Save("updated.pdf");
}
No predicado, Tags.Time.Created e Tags.Time.Modified são tags para a data de criação e a data da última modificação, respectivamente. O código encontrará quaisquer propriedades de metadados marcadas com essas tags e as definirá para DateTime.Now. Se, por exemplo, uma propriedade de data de criação não existir nos metadados do arquivo, a biblioteca a adicionará (pois é uma propriedade padrão conhecida para aquele formato).
Remover metadados por tag
Para privacidade ou conformidade, pode ser necessário remover certos metadados (por exemplo, nomes de autores ou informações pessoais) de documentos. As tags facilitam a identificação e remoção desses metadados em diferentes formatos. O método RemoveProperties() aceita um predicado como os demais e eliminará quaisquer entradas de metadados que correspondam.
Etapas
- Carregue o arquivo em um objeto
Metadata. - Chame
RemoveProperties()com um predicado baseado em tag que identifique as propriedades a serem removidas. - Revise a contagem de propriedades removidas retornada pelo método.
- Salve o arquivo para aplicar as alterações.
using (Metadata metadata = new Metadata("source.docx"))
{
// Remove properties that are tagged as Creator or Editor, or any string containing "John"
int removedCount = metadata.RemoveProperties(p =>
p.Tags.Contains(Tags.Person.Creator) ||
p.Tags.Contains(Tags.Person.Editor) ||
(p.Value.Type == MetadataPropertyType.String && p.Value.ToString().Contains("John"))
);
Console.WriteLine("Properties removed: " + removedCount);
metadata.Save("cleaned.docx");
}
Esse predicado combina múltiplos critérios: qualquer propriedade marcada como Criador ou Editor (ambas na categoria Pessoa) será removida, e, adicionalmente, quaisquer metadados de texto que contenham “John” em seu valor também serão eliminados. Em um cenário real, você poderia usar essa lógica para limpar documentos de dados pessoais (como nomes de autores ou clientes).
Conclusão
Neste artigo, demonstramos como o recurso de marcação do GroupDocs.Metadata para .NET permite adicionar, copiar, localizar, atualizar e remover metadados de forma unificada em diversos tipos de documentos. Ao aproveitar tags como Conteúdo, Pessoa, Tempo etc., você pode criar fluxos de trabalho que organizam arquivos por metadados consistentes, melhoram a pesquisabilidade (encontrar todos os arquivos por autor ou data, por exemplo) e automatizam a categorização ou a limpeza de documentos.
Veja também
- Documentação do GroupDocs.Metadata para .NET
- Visão geral do produto GroupDocs.Metadata para .NET
- Exemplos do GitHub do GroupDocs.Metadata para .NET
- Notas de lançamento do GroupDocs.Metadata para .NET
Obtenha uma avaliação gratuita
Você pode baixar uma versão de avaliação gratuita do GroupDocs.Metadata para .NET em releases.groupdocs.com. Você também pode adquirir uma licença temporária para experimentar todos os recursos e funcionalidades sem restrições a partir de aqui.