Metadati sono i dati che forniscono informazioni sui dati effettivi. Viene comunemente descritto come “dati sui dati”. Quando si invia un file a qualcuno, non è una buona pratica inviare i metadati. Può rivelare le tue informazioni al destinatario che potresti non voler condividere. Alcuni degli esempi includono; Nome, nome dell’azienda, data di modifica del documento, marca e modello della fotocamera, ecc. In questo articolo, rimuoveremo a livello di codice i metadati dalle immagini e dai documenti utilizzando Java.

API Java per la pulizia dei metadati

GroupDocs.Metadata for Java è un’API di metadati per Java che supporta la maggior parte degli standard di metadati più diffusi come EXIF, XMP, IPTC, tag ID3, ecc. Consente agli sviluppatori Java di aggiungere, modificare, estrarre e rimuovere metadati con varie opzioni da un ampio elenco di formati supportati di documenti, immagini e altri file.

I passaggi in questo articolo e gli esempi di codice usano l’API GroupDocs.Metadata. Quindi, prima di procedere, assicurati di preparare l’ambiente di sviluppo utilizzando una delle seguenti opzioni:

  • Ottieni il file JAR dalla sezione download.
  • Aggiungi la seguente configurazione pom.xml nelle tue applicazioni java basate su 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>

Rimuovere i metadati dai documenti utilizzando Java

Per rimuovere tutte le proprietà dei metadati disponibili senza applicare alcun filtro e per rimanere al sicuro nell’era del COVID-19, utilizza il metodo sanitize. Di seguito sono riportati i passaggi per rimuovere i metadati dai documenti utilizzando GroupDocs.Metadata per Java.

  • Istanziare l’oggetto della classe Metadata, passando il percorso del documento di destinazione come parametro.
  • Chiama il metodo sanitize. Restituisce il numero delle proprietà dei metadati rimossi.
  • Salva il file di output con i metadati cancellati usando il metodo save.

L’esempio di codice Java seguente mostra come rimuovere e cancellare i metadati dal documento.

/*
* Rimuovere tutte le proprietà dei metadati rilevati da Word, Excel, 
* PowerPoint, PDF e altri documenti che utilizzano Java
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata 

Rimuovere i metadati dalle immagini utilizzando Java

Se desideri rimuovere tutti i metadati dalle tue immagini utilizzando Java, puoi utilizzare lo stesso metodo di sanificazione seguendo gli stessi passaggi:

  • Crea l’oggetto della classe Metadata, passando il percorso del documento di destinazione come parametro.
  • Chiama il metodo sanitize.
  • Salva il file di output usando il metodo save.
/*
* Rimuovere tutte le proprietà dei metadati rilevati da JPEG, PNG,
* WebP, BMP, GIF, TIFF e altre immagini che utilizzano Java
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata

Rimuovere i metadati selettivi da documenti e immagini utilizzando Java

Non è sempre necessario rimuovere tutti i metadati disponibili dai file, tuttavia, a volte si desidera rimuovere le proprietà selettive dei metadati. I passaggi seguenti mostrano come individuare e rimuovere i metadati utilizzando il nome specifico della proprietà.

  • Crea un oggetto Metadati per caricare il documento o il file immagine di destinazione.
  • Crea specifiche personalizzate per trovare le proprietà dei metadati.
  • Chiama il metodo removeProperties e passa le specifiche personalizzate.
  • Salva il file di output usando il metodo save.
// Rimuovere le proprietà dei metadati da documenti e immagini che soddisfano il filtro personalizzato utilizzando Java
public class RemoveMetadataProperties {
	public static void removeMetadataProperties() {
		Metadata metadata = new Metadata("filePath/document.docx");
		/*
		 * Rimuovi tutte le proprietà che: 
		 * contiene il nome dell'autore del documento OR
		 * si riferisce all'ultimo editor OR 
		 * il valore della proprietà è una stringa AND uguale alla stringa data "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");
	}

	// Crea specifiche personalizzate per filtrare le proprietà dei metadati
	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());
		}
	}
}

Conclusione

In questo articolo, abbiamo imparato a pulire i metadati da documenti e immagini utilizzando Java. Ora puoi creare la tua applicazione Java per la pulizia dei metadati. Può supportare la rimozione di metadati da documenti di elaborazione testi, fogli di calcolo, presentazioni, file PDF, immagini, e-mail, eBook, disegni, file zip e molti altri. Puoi esplorare di più sull’API dei metadati Java dalla documentazione.

Guarda anche