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 limpeza de metadados .NET
- Remover metadados de documentos usando C#
- Limpar metadados de imagens usando C#
- Remover metadados seletivos de documentos e imagens 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 for .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.