Hoje estamos prestes a aprender algumas maneiras de remover programaticamente ou limpar totalmente metadados de documentos e imagens usando C#. Em um post anterior, discutimos a remoção da seletiva, bem como de todas as propriedades de metadados disponíveis de documentos e imagens usando Java. Às vezes, é importante ocultar informações pessoais do destinatário que estão anexadas ao documento. A seguir estão os tópicos que ajudarão você a limpar seus arquivos de metadados usando C#.

API de remoção de metadados .NET

Para alcançar o que está planejado, usarei a API GroupDocs.Metadata for .NET que permite aos desenvolvedores .NET adicionar, modificar, extrair, remover ou completamente metadados de muitos formatos suportados de documentos, imagens e outros arquivos. A API suporta padrões de metadados como EXIF, XMP, IPTC, tag ID3, etc. Você pode baixar DLLs ou instalador MSI, ou instalá-lo via NuGet.

Install-Package GroupDocs.Metadata

Remover metadados de documentos usando C#

Para remover todas as propriedades de metadados sem aplicar nenhum filtro específico, use o método Sanitize. A seguir estão as etapas para limpar metadados de documentos como DOCX, PDF, XLSX, etc, usando GroupDocs.Metadata para .NET.

  • Comece criando o objeto da classe Metadata e passe o caminho do documento de destino como parâmetro.
  • Use o método Sanitize para limpar todos os metadados disponíveis. Ele retorna o número das propriedades de metadados removidas.
  • Chame o método Save para salvar o arquivo de saída com os metadados removidos.

O exemplo de código C# a seguir mostra como remover e limpar metadados de um documento PDF.

/*
* Limpe todas as propriedades de metadados detectadas do Word, Excel, 
* PowerPoint, PDF e outros documentos usando C#
*/
using (Metadata metadata = new Metadata("filePath/document.pdf"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.pdf");
}

Remover metadados de imagens usando C#

Se você deseja remover metadados de seus documentos ou de seus arquivos de imagem, o processo permanecerá o mesmo. Apenas o documento de origem será alterado em conformidade.

  • Crie o objeto da classe Metadata e passe o caminho do documento como parâmetro.
  • Chame o método Sanitize para remover quaisquer propriedades de metadados disponíveis.
  • Salve o arquivo de saída usando o método Save.

O exemplo de código C# a seguir mostra como remover metadados de uma imagem JPG.

/*
* Limpe ou remova todas as propriedades de metadados detectadas de PNG, JPG/JPEG,
* WebP, BMP, GIF, TIFF e outras imagens usando C#
*/
using (Metadata metadata = new Metadata("filePath/document.jpg"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.jpg");
}

Remover metadados seletivos de documentos e imagens usando C#

Se não for necessário remover todos os metadados disponíveis dos arquivos, e queremos apenas remover apenas as propriedades de metadados seletivas. As etapas a seguir permitem localizar e remover as propriedades de metadados de destino usando o nome específico da propriedade.

  • Crie um objeto da classe Metadata para carregar o documento de origem ou arquivo de imagem.
  • Crie especificações personalizadas para encontrar as propriedades de metadados.
  • Chame o método RemoveProperties com as especificações personalizadas criadas.
  • Salve o arquivo de saída usando o método Save.
// Remova as propriedades de metadados de documentos e imagens que satisfaçam o filtro personalizado usando C#
using (Metadata metadata = new Metadata("filePath/document.docx"))
{
	// Remova todas as propriedades que:
	// contém o nome do autor do documento OU
	// refere-se ao último editor OU 
	// o valor da propriedade é uma string E igual à string fornecida "GroupDocs"
	var affected = metadata.RemoveProperties(
		p => p.Tags.Contains(Tags.Person.Creator) ||
			 p.Tags.Contains(Tags.Person.Editor) ||
			 p.Value.Type == MetadataPropertyType.String && p.Value.ToString().Contains("GroupDocs"));
	Console.WriteLine("Properties removed: {0}", affected);

	metadata.Save("outputPath/document.docx");
}

Conclusão

Aprendemos as maneiras de remover metadados de documentos e imagens usando C#. Depois de ler este artigo, você se sentirá à vontade para construir seu próprio aplicativo de limpeza de metadados usando .NET. Ele pode suportar a remoção de metadados de formatos de documentos do MS Word, planilhas, apresentações, arquivos PDF, imagens, e-mails, eBooks, desenhos, arquivos zip e muito mais formatos de arquivo suportados pela API.

Você pode explorar mais a API de manipulação de metadados .NET na documentação.

Veja também