Les métadonnées sont les données qui fournissent des informations sur les données réelles. Il est communément décrit comme « données sur les données ». Lorsque vous envoyez un fichier à quelqu’un, ce n’est pas une bonne pratique d’envoyer des métadonnées. Il peut révéler au destinataire vos informations que vous ne souhaitez peut-être pas partager. Certains des exemples incluent; Nom, nom de l’entreprise, date de modification du document, marque et modèle de l’appareil photo, etc. Dans cet article, nous allons supprimer par programme les métadonnées des images et des documents à l’aide de Java.

API de nettoyage de métadonnées Java

API de nettoyage de métadonnées Java

GroupDocs.Metadata for Java est une API de métadonnées pour Java qui prend en charge la plupart des normes de métadonnées populaires telles que EXIF, XMP, IPTC, balise ID3, etc. Elle permet aux développeurs Java d’ajouter, de modifier, d’extraire et de supprimer des métadonnées. avec diverses options parmi une longue liste de formats pris en charge de documents, d’images et d’autres fichiers.

Les étapes de cet article et les exemples de code utilisent l’API GroupDocs.Metadata. Donc, avant de continuer, assurez-vous de préparer l’environnement de développement en utilisant l’une des options suivantes :

  • Obtenez le fichier JAR à partir de la section downloads.
  • Ajoutez la configuration pom.xml suivante dans vos applications Java basées sur Maven
<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-metadata</artifactId>
        <version>20.11</version> 
</dependency>

Supprimer les métadonnées des documents à l’aide de Java

Pour supprimer toutes les propriétés de métadonnées disponibles sans appliquer de filtre et pour rester en sécurité à l’ère du COVID-19, utilisez la méthode ** assainize **. Voici les étapes pour supprimer les métadonnées des documents à l’aide de GroupDocs.Metadata for Java.

  • Instanciez l’objet de la classe Metadata, en passant le chemin du document cible en paramètre.
  • Appelez la méthode sanitize. Il renvoie le nombre de propriétés de métadonnées supprimées.
  • Enregistrez le fichier de sortie avec les métadonnées effacées à l’aide de la méthode save.

L’exemple de code Java suivant montre comment supprimer et effacer les métadonnées du document.

/*
* Supprimez toutes les propriétés de métadonnées détectées de Word, Excel, 
* PowerPoint, PDF et autres documents utilisant Java
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata 

Supprimer les métadonnées des images à l’aide de Java

Si vous souhaitez supprimer toutes les métadonnées de vos images à l’aide de Java, vous pouvez utiliser la même méthode de nettoyage en suivant les mêmes étapes :

  • Créez l’objet de la classe Metadata, en passant le chemin du document cible comme paramètre.
  • Appelez la méthode sanitize.
  • Enregistrez le fichier de sortie en utilisant la méthode save.
/*
* Supprimez toutes les propriétés de métadonnées détectées de JPEG, PNG,
* WebP, BMP, GIF, TIFF et autres images utilisant Java
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata

Supprimer les métadonnées sélectives des documents et des images à l’aide de Java

Il n’est pas toujours nécessaire de supprimer toutes les métadonnées disponibles des fichiers, cependant, nous souhaitons parfois supprimer les propriétés de métadonnées sélectives. Les étapes suivantes montrent comment localiser et supprimer les métadonnées à l’aide du nom spécifique de la propriété.

  • Créez un objet Metadata pour charger le document ou le fichier image ciblé.
  • Créez des spécifications personnalisées pour trouver les propriétés des métadonnées.
  • Appelez la méthode removeProperties et transmettez les spécifications personnalisées.
  • Enregistrez le fichier de sortie en utilisant la méthode save.
// Supprimer les propriétés de métadonnées des documents et des images qui satisfont le filtre personnalisé à l'aide de Java
public class RemoveMetadataProperties {
	public static void removeMetadataProperties() {
		Metadata metadata = new Metadata("filePath/document.docx");
		/*
		 * Supprimez toutes les propriétés qui : 
		 * contient le nom de l'auteur du document OU
		 * il fait référence au dernier éditeur OU 
		 * la valeur de la propriété est une chaîne ET égale à la chaîne donnée "GroupDocs"
		 */
		int affected = metadata.removeProperties(new ContainsTagSpecification(Tags.getPerson().getCreator())
				.or(new ContainsTagSpecification(Tags.getPerson().getEditor()))
				.or(new OfTypeSpecification(MetadataPropertyType.String)
						.and(new RemoveMetadataProperties().new WithValueSpecification("GroupDocs"))));

		System.out.println(String.format("Properties removed: %s", affected));

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

	// Créez des spécifications personnalisées pour filtrer les propriétés des métadonnées
	public class WithValueSpecification extends Specification {
		public WithValueSpecification(Object value) {
			setValue(value);
		}

		public final Object getValue() {
			return auto_Value;
		}

		private void setValue(Object value) {
			auto_Value = value;
		}

		private Object auto_Value;

		public boolean isSatisfiedBy(MetadataProperty candidate) {
			return candidate.getValue().getRawValue().equals(getValue());
		}
	}
}

Conclusion

Dans cet article, nous avons appris à nettoyer les métadonnées des documents et des images à l’aide de Java. Vous pouvez maintenant créer votre propre application Java de nettoyage de métadonnées. Il peut prendre en charge la suppression des métadonnées des documents de traitement de texte, des feuilles de calcul, des présentations, des fichiers PDF, des images, des e-mails, des livres électroniques, des dessins, des fichiers zip et bien d’autres. Vous pouvez en savoir plus sur l’API de métadonnées Java à partir de la documentation.

Voir également