Hoy estamos a punto de aprender algunas formas de eliminar mediante programación o limpiar por completo los metadatos de documentos e imágenes usando C#. En una publicación anterior, discutimos la eliminación de las propiedades de metadatos selectivos y disponibles de documentos e imágenes usando Java. A veces es importante ocultar información personal del receptor que se adjunta al documento. Los siguientes son los temas que lo ayudarán a limpiar sus archivos de metadatos usando C#.

API de eliminación de metadatos de .NET

Para lograr lo planeado, usaré GroupDocs.Metadata for .NET API que permite a los desarrolladores de .NET agregar, modificar, extraer, eliminar o metadatos completos de muchos formatos admitidos de documentos, imágenes y otros archivos. La API admite estándares de metadatos como EXIF, XMP, IPTC, etiquetas ID3, etc. Puede descargar DLL o el instalador MSI, o instalarlo a través de NuGet.

Install-Package GroupDocs.Metadata

Eliminar metadatos de documentos usando C#

Para eliminar todas las propiedades de los metadatos sin aplicar ningún filtro específico, utilice el método Sanitize. Los siguientes son los pasos para limpiar metadatos de documentos como DOCX, PDF, XLSX, etc. usando GroupDocs.Metadata para .NET.

  • Comience creando el objeto de clase Metadatos y pase la ruta del documento de destino como parámetro.
  • Use el método Sanitize para borrar todos los metadatos disponibles. Devuelve el número de propiedades de metadatos eliminados.
  • Llame al método Guardar para guardar el archivo de salida con los metadatos eliminados.

El siguiente ejemplo de código C# muestra cómo quitar y borrar metadatos de un documento PDF.

/*
* Limpie todas las propiedades de metadatos detectados de Word, Excel, 
* PowerPoint, PDF y otros documentos usando C#
*/
using (Metadata metadata = new Metadata("filePath/document.pdf"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.pdf");
}

Eliminar metadatos de imágenes usando C#

Ya sea que desee eliminar los metadatos de sus documentos o de sus archivos de imagen, el proceso seguirá siendo el mismo. Solo el documento de origen se modificará en consecuencia.

  • Cree el objeto de la clase Metadata y pase la ruta del documento como parámetro.
  • Llame al método Sanitize para eliminar cualquier propiedad de metadatos disponible.
  • Guarde el archivo de salida utilizando el método Guardar.

El siguiente ejemplo de código C# muestra cómo eliminar metadatos de una imagen JPG.

/*
* Limpie o elimine todas las propiedades de metadatos detectados de PNG, JPG/JPEG,
* WebP, BMP, GIF, TIFF y otras imágenes usando C#
*/
using (Metadata metadata = new Metadata("filePath/document.jpg"))
{
	var affected = metadata.Sanitize();
	metadata.Save("filePath/output.jpg");
}

Eliminar metadatos selectivos de documentos e imágenes usando C#

Si no es necesario eliminar todos los metadatos disponibles de los archivos, y solo queremos eliminar solo las propiedades de metadatos selectivos. Los siguientes pasos le permiten ubicar y eliminar las propiedades de metadatos de destino utilizando el nombre específico de la propiedad.

  • Cree un objeto de la clase Metadatos para cargar el documento de origen o el archivo de imagen.
  • Crear especificaciones personalizadas para encontrar las propiedades de los metadatos.
  • Llame al método RemoveProperties con las especificaciones personalizadas creadas.
  • Guarde el archivo de salida utilizando el método Guardar.
// Elimine las propiedades de metadatos de documentos e imágenes que satisfagan el filtro personalizado usando C#
using (Metadata metadata = new Metadata("filePath/document.docx"))
{
	// Eliminar todas las propiedades que:
	// contiene el nombre del autor del documento O
	// se refiere al último editor O 
	// el valor de la propiedad es una cadena E igual a la cadena dada "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");
}

Conclusión

Aprendimos las formas de eliminar metadatos de documentos e imágenes usando C#. Después de leer este artículo, se sentirá cómodo creando su propia aplicación de limpieza de metadatos utilizando .NET. Puede admitir la eliminación de metadatos de formatos de documentos de MS Word, hojas de cálculo, presentaciones, archivos PDF, imágenes, correos electrónicos, libros electrónicos, dibujos, archivos zip y muchos más formatos de archivo compatibles con la API.

Puede seguir explorando la API de manipulación de metadatos de .NET en la documentación.

Ver también