Metadata zijn de gegevens die informatie geven over de daadwerkelijke gegevens. Het wordt vaak omschreven als “data over data”. Wanneer je een bestand naar iemand stuurt, is het geen goede gewoonte om metadata mee te sturen. Het kan uw informatie aan de ontvanger onthullen die u misschien niet wilt delen. Enkele voorbeelden zijn; Naam, bedrijfsnaam, wijzigingsdatum document, merk en model camera, etc. In dit artikel zullen we metadata programmatisch verwijderen van de afbeeldingen en documenten met behulp van Java.

Java Metadata Cleaner-API

GroupDocs.Metadata for Java is een metadata-API voor Java die de meeste populaire metadatastandaarden ondersteunt, zoals EXIF, XMP, IPTC, ID3-tag, enz. Hiermee kunnen Java-ontwikkelaars metadata toevoegen, wijzigen, extraheren en verwijderen met verschillende opties uit een grote lijst met ondersteunde formaten documenten, afbeeldingen en andere bestanden.

Stappen in dit artikel en codevoorbeelden gebruiken GroupDocs.Metadata API. Voordat u verder gaat, moet u er dus voor zorgen dat u de ontwikkelomgeving voorbereidt met behulp van een van de volgende opties:

  • Download het JAR-bestand uit de sectie downloads.
  • Voeg de volgende pom.xml-configuratie toe aan uw op Maven gebaseerde Java-toepassingen
<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>

Verwijder metagegevens uit documenten met behulp van Java

Gebruik de sanitize-methode om alle beschikbare metadata-eigenschappen te verwijderen zonder een filter toe te passen en om veilig te blijven in het tijdperk van COVID-19. Hieronder volgen de stappen om metadata uit de documenten te verwijderen met behulp van GroupDocs.Metadata for Java.

  • Maak een instantie van het object van de klasse Metadata, waarbij u het pad van het doeldocument als parameter doorgeeft.
  • Roep de methode sanitize op. Het retourneert het nummer van de verwijderde metadata-eigenschappen.
  • Sla het uitvoerbestand met gewiste metadata op met behulp van de methode save.

Het volgende Java-codevoorbeeld laat zien hoe metagegevens uit het document kunnen worden verwijderd en gewist.

/*
* Verwijder alle gedetecteerde metadata-eigenschappen uit Word, Excel, 
* PowerPoint, PDF en andere documenten met Java
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata 

Verwijder metagegevens van afbeeldingen met behulp van Java

Als u alle metadata van uw afbeeldingen wilt verwijderen met Java, kunt u dezelfde opschoningsmethode gebruiken door dezelfde stappen te volgen:

  • Maak het object van de klasse Metadata en geef het doeldocumentpad door als parameter.
  • Roep de methode sanitize aan.
  • Sla het uitvoerbestand op met de methode save.
/*
* Verwijder alle gedetecteerde metadata-eigenschappen uit JPEG, PNG,
* WebP, BMP, GIF, TIFF en andere afbeeldingen met Java
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata

Verwijder selectieve metagegevens uit documenten en afbeeldingen met behulp van Java

Het is niet altijd nodig om alle beschikbare metadata uit de bestanden te verwijderen, maar soms willen we de selectieve metadata-eigenschappen verwijderen. De volgende stappen laten zien hoe u de metagegevens kunt vinden en verwijderen met behulp van de specifieke naam van de eigenschap.

  • Maak een Metadata-object om het beoogde document of afbeeldingsbestand te laden.
  • Creëer gepersonaliseerde specificaties om de metadata-eigenschappen te vinden.
  • Roep de methode removeProperties aan en geef de gepersonaliseerde specificaties door.
  • Sla het uitvoerbestand op met de methode save.
// Verwijder de metadata-eigenschappen uit documenten en afbeeldingen die voldoen aan het aangepaste filter met behulp van Java
public class RemoveMetadataProperties {
	public static void removeMetadataProperties() {
		Metadata metadata = new Metadata("filePath/document.docx");
		/*
		 * Verwijder alle eigenschappen die: 
		 * bevat de naam van de auteur van het document OF
		 * het verwijst naar de laatste editor OR 
		 * de eigenschapswaarde is een string EN gelijk aan de gegeven string "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");
	}

	// Creëer gepersonaliseerde specificaties om metadata-eigenschappen te filteren
	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());
		}
	}
}

Conclusie

In dit artikel leerden we het opschonen van metadata van documenten en afbeeldingen met behulp van Java. Nu kunt u uw eigen Java-toepassing voor het opschonen van metagegevens bouwen. Het ondersteunt het verwijderen van metadata uit tekstverwerkingsdocumenten, spreadsheets, presentaties, PDF-bestanden, afbeeldingen, e-mails, eBooks, tekeningen, zip-bestanden en nog veel meer. U kunt meer informatie vinden over de Java-metadata-API in de documentatie.

Zie ook