Metadata jsou data, která poskytují informace o skutečných datech. Běžně se popisuje jako „data o datech“. Když někomu posíláte soubor, není dobré posílat spolu metadata. Může příjemci odhalit vaše informace, které možná nechcete sdílet. Některé z příkladů zahrnují; Název, Název společnosti, Datum úpravy dokumentu, Značka a model fotoaparátu atd. V tomto článku budeme programově odstraňovat metadata z obrázků a dokumentů pomocí Javy.

Java Metadata Cleaner API

GroupDocs.Metadata for Java je metadatové API pro Java, které podporuje většinu populárních standardů metadat jako EXIF, XMP, IPTC, ID3 tag atd. Umožňuje vývojářům Java přidávat, upravovat, extrahovat a odstraňovat metadata. s různými možnostmi z velkého seznamu podporovaných formátů dokumentů, obrázků a dalších souborů.

Kroky v tomto článku a ukázky kódu používají GroupDocs.Metadata API. Než tedy budete pokračovat, nezapomeňte připravit vývojové prostředí pomocí některé z následujících možností:

  • Získejte soubor JAR ze sekce ke stažení.
  • Přidejte následující konfiguraci pom.xml do svých Java aplikací založených na 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>

Odstraňte metadata z dokumentů pomocí Java

Chcete-li odstranit všechny dostupné vlastnosti metadat bez použití jakéhokoli filtru a zůstat v bezpečí v éře COVID-19, použijte metodu dezinfekce. Následují kroky k odstranění metadat z dokumentů pomocí GroupDocs.Metadata for Java.

  • Vytvořte instanci objektu třídy Metadata a jako parametr předejte cestu cílového dokumentu.
  • Zavolejte metodu sanitize. Vrátí počet odstraněných vlastností metadat.
  • Uložte výstupní soubor s vymazanými metadaty pomocí metody save.

Následující ukázka kódu Java ukazuje, jak odstranit a vymazat metadata z dokumentu.

/*
* Odeberte všechny zjištěné vlastnosti metadat z aplikací Word, Excel, 
* PowerPoint, PDF a další dokumenty využívající Java
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata 

Odstraňte metadata z obrázků pomocí Javy

Pokud chcete odstranit všechna metadata z vašich obrázků pomocí Java, můžete použít stejnou metodu dezinfekce podle stejných kroků:

  • Vytvořte objekt třídy Metadata a jako parametr předejte cestu k cílovému dokumentu.
  • Zavolejte metodu sanitize.
  • Uložte výstupní soubor pomocí metody save.
/*
* Odstraňte všechny zjištěné vlastnosti metadat z JPEG, PNG,
* WebP, BMP, GIF, TIFF a další obrázky pomocí Javy
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata

Odstraňte selektivní metadata z dokumentů a obrázků pomocí Java

Není vždy nutné odstranit všechna dostupná metadata ze souborů, někdy však chceme odstranit selektivní vlastnosti metadat. Následující kroky ukazují, jak najít a odstranit metadata pomocí konkrétního názvu vlastnosti.

  • Vytvořte objekt Metadata pro načtení cílového dokumentu nebo souboru obrázku.
  • Vytvořte personalizované specifikace, abyste našli vlastnosti metadat.
  • Zavolejte metodu removeProperties a předejte personalizované specifikace.
  • Uložte výstupní soubor pomocí metody save.
// Odstraňte vlastnosti metadat z dokumentů a obrázků, které vyhovují přizpůsobenému filtru pomocí Java
public class RemoveMetadataProperties {
	public static void removeMetadataProperties() {
		Metadata metadata = new Metadata("filePath/document.docx");
		/*
		 * Odstraňte všechny vlastnosti, které: 
		 * obsahuje jméno autora dokumentu NEBO
		 * odkazuje na posledního editora OR 
		 * hodnota vlastnosti je řetězec A rovna danému řetězci "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");
	}

	// Vytvořte personalizované specifikace pro filtrování vlastností metadat
	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());
		}
	}
}

Závěr

V tomto článku jsme se naučili čistit metadata z dokumentů a obrázků pomocí Javy. Nyní si můžete vytvořit svou vlastní Java aplikaci pro čištění metadat. Může podporovat odstraňování metadat z textových dokumentů, tabulek, prezentací, souborů PDF, obrázků, e-mailů, elektronických knih, kreseb, souborů zip a mnoha dalších. Další informace o API metadat Java můžete prozkoumat v dokumentaci.

Viz také