Metadaten sind die Daten, die Auskunft über die eigentlichen Daten geben. Es wird allgemein als „Daten über Daten“ beschrieben. Wenn Sie eine Datei an jemanden senden, empfiehlt es sich nicht, Metadaten mitzusenden. Es kann dem Empfänger Ihre Informationen offenbaren, die Sie möglicherweise nicht teilen möchten. Einige der Beispiele umfassen; Name, Firmenname, Änderungsdatum des Dokuments, Marke und Modell der Kamera usw. In diesem Artikel werden wir mithilfe von Java programmgesteuert Metadaten aus den Bildern und Dokumenten entfernen.

Java Metadata Cleaner-API

GroupDocs.Metadata for Java ist eine Metadaten-API für Java, die die meisten gängigen Metadatenstandards wie EXIF, XMP, IPTC, ID3-Tag usw. unterstützt. Sie ermöglicht Java-Entwicklern das Hinzufügen, Ändern, Extrahieren und Entfernen von Metadaten mit verschiedenen Optionen aus einer großen Liste von unterstützten Formaten von Dokumenten, Bildern und anderen Dateien.

Schritte in diesem Artikel und Codebeispiele verwenden die GroupDocs.Metadata-API. Bevor Sie fortfahren, stellen Sie bitte sicher, dass Sie die Entwicklungsumgebung mit einer der folgenden Optionen vorbereiten:

  • Holen Sie sich die JAR-Datei aus dem Abschnitt downloads.
  • Fügen Sie die folgende pom.xml-Konfiguration in Ihren Maven-basierten Java-Anwendungen hinzu
<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>

Metadaten aus Dokumenten mit Java entfernen

Um alle verfügbaren Metadateneigenschaften zu entfernen, ohne einen Filter anzuwenden, und um in der Ära von COVID-19 sicher zu bleiben, verwenden Sie die sanitize-Methode. Im Folgenden sind die Schritte zum Entfernen von Metadaten aus den Dokumenten mit GroupDocs.Metadata for Java aufgeführt.

  • Instanziieren Sie das Objekt der Klasse Metadata und übergeben Sie den Pfad des Zieldokuments als Parameter.
  • Rufen Sie die Methode sanitize auf. Es gibt die Anzahl der entfernten Metadateneigenschaften zurück.
  • Speichern Sie die Ausgabedatei mit gelöschten Metadaten mit der Methode save.

Das folgende Java-Codebeispiel zeigt, wie Metadaten aus dem Dokument entfernt und gelöscht werden.

/*
* Entfernen Sie alle erkannten Metadateneigenschaften aus Word, Excel, 
* PowerPoint, PDF und andere Dokumente, die Java verwenden
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata 

Metadaten von Bildern mit Java entfernen

Wenn Sie alle Metadaten von Ihren Bildern mit Java entfernen möchten, können Sie dieselbe Bereinigungsmethode verwenden, indem Sie dieselben Schritte ausführen:

  • Erstellen Sie das Objekt der Klasse Metadata und übergeben Sie den Pfad des Zieldokuments als Parameter.
  • Rufen Sie die Methode sanitize auf.
  • Speichern Sie die Ausgabedatei mit der Methode save.
/*
* Entfernen Sie alle erkannten Metadateneigenschaften aus JPEG, PNG,
* WebP, BMP, GIF, TIFF und andere Bilder mit Java
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata

Entfernen Sie selektive Metadaten aus Dokumenten und Bildern mit Java

Es ist nicht immer erforderlich, alle verfügbaren Metadaten aus den Dateien zu entfernen, manchmal möchten wir jedoch die selektiven Metadateneigenschaften entfernen. Die folgenden Schritte zeigen, wie Sie die Metadaten mithilfe des spezifischen Namens der Eigenschaft suchen und entfernen.

  • Erstellen Sie ein Metadaten-Objekt, um das Zieldokument oder die Bilddatei zu laden.
  • Erstellen Sie personalisierte Spezifikationen, um die Metadateneigenschaften zu finden.
  • Rufen Sie die Methode removeProperties auf und übergeben Sie die personalisierten Spezifikationen.
  • Speichern Sie die Ausgabedatei mit der Methode save.
// Entfernen Sie die Metadateneigenschaften aus Dokumenten und Bildern, die den benutzerdefinierten Filter mit Java erfüllen
public class RemoveMetadataProperties {
	public static void removeMetadataProperties() {
		Metadata metadata = new Metadata("filePath/document.docx");
		/*
		 * Entfernen Sie alle Eigenschaften, die: 
		 * enthält den Namen des Dokumentautors ODER
		 * es bezieht sich auf den letzten Bearbeiter ODER 
		 * Der Eigenschaftswert ist eine Zeichenfolge UND gleich der angegebenen Zeichenfolge „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");
	}

	// Erstellen Sie personalisierte Spezifikationen, um Metadateneigenschaften zu filtern
	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());
		}
	}
}

Fazit

In diesem Artikel haben wir gelernt, Metadaten aus Dokumenten und Bildern mit Java zu bereinigen. Jetzt können Sie Ihre eigene Metadaten-Cleaner-Java-Anwendung erstellen. Es kann das Entfernen von Metadaten aus Textverarbeitungsdokumenten, Tabellenkalkulationen, Präsentationen, PDF-Dateien, Bildern, E-Mails, eBooks, Zeichnungen, Zip-Dateien und vielem mehr unterstützen. Weitere Informationen zur Java-Metadaten-API finden Sie in der Dokumentation.

Siehe auch