Metadata adalah data yang menyediakan informasi tentang data sebenarnya. Ini biasanya digambarkan sebagai “data tentang data”. Saat mengirim file ke seseorang, bukanlah praktik yang baik untuk mengirimkan metadata bersama. Itu dapat mengungkapkan informasi Anda kepada penerima yang mungkin tidak ingin Anda bagikan. Beberapa contohnya antara lain; Nama, Nama Perusahaan, Tanggal Modifikasi Dokumen, Pembuatan dan Model Kamera, dll. Pada artikel ini, kami akan menghapus metadata dari gambar dan dokumen secara terprogram menggunakan Java.

API Pembersih Metadata Java

GroupDocs.Metadata for Java adalah API metadata untuk Java yang mendukung sebagian besar standar metadata populer seperti EXIF, XMP, IPTC, tag ID3, dll. API ini memungkinkan pengembang Java untuk menambah, memodifikasi, mengekstrak, dan menghapus metadata dengan berbagai opsi dari daftar besar format yang didukung dokumen, gambar, dan file lainnya.

Langkah-langkah dalam artikel ini dan contoh kode menggunakan GroupDocs.Metadata API. Jadi sebelum melanjutkan, pastikan untuk menyiapkan lingkungan pengembangan menggunakan salah satu opsi berikut:

  • Dapatkan file JAR dari bagian unduh.
  • Tambahkan konfigurasi pom.xml berikut di aplikasi java berbasis Maven Anda
<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>

Hapus Metadata dari Dokumen menggunakan Java

Untuk menghapus semua properti metadata yang tersedia tanpa menerapkan filter apa pun, dan agar tetap aman di era COVID-19, gunakan metode sanitasi. Berikut adalah langkah-langkah untuk menghapus metadata dari dokumen menggunakan GroupDocs.Metadata for Java.

  • Buat instance objek dari kelas Metadata, dengan meneruskan jalur dokumen target sebagai parameter.
  • Panggil metode sanitasi. Ini mengembalikan jumlah properti metadata yang dihapus.
  • Simpan file keluaran dengan metadata yang telah dibersihkan menggunakan metode save.

Contoh kode Java berikut menunjukkan cara menghapus dan membersihkan metadata dari dokumen.

/*
* Hapus semua properti metadata yang terdeteksi dari Word, Excel, 
* PowerPoint, PDF, dan dokumen lainnya menggunakan Java
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata 

Hapus Metadata dari Gambar menggunakan Java

Jika Anda ingin menghapus semua metadata dari gambar menggunakan Java, Anda dapat menggunakan metode sanitasi yang sama dengan mengikuti langkah yang sama:

  • Buat objek dari kelas Metadata, dengan meneruskan jalur dokumen target sebagai parameter.
  • Panggil metode sanitasi.
  • Simpan file keluaran menggunakan metode save.
/*
* Hapus semua properti metadata yang terdeteksi dari JPEG, PNG,
* WebP, BMP, GIF, TIFF, dan gambar lainnya menggunakan Java
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata

Hapus Metadata Selektif dari Dokumen dan Gambar menggunakan Java

Tidak selalu diperlukan untuk menghapus semua metadata yang tersedia dari file, namun terkadang kami ingin menghapus properti metadata selektif. Langkah-langkah berikut menunjukkan cara menemukan dan menghapus metadata menggunakan nama spesifik properti.

  • Buat objek Metadata untuk memuat dokumen atau file gambar yang ditargetkan.
  • Buat spesifikasi yang dipersonalisasi untuk menemukan properti metadata.
  • Panggil metode removeProperties dan berikan spesifikasi yang dipersonalisasi.
  • Simpan file keluaran menggunakan metode save.
// Hapus properti metadata dari dokumen dan gambar yang memenuhi filter yang disesuaikan menggunakan Java
public class RemoveMetadataProperties {
	public static void removeMetadataProperties() {
		Metadata metadata = new Metadata("filePath/document.docx");
		/*
		 * Hapus semua properti yang: 
		 * berisi nama pembuat dokumen ATAU
		 * itu mengacu pada editor terakhir ATAU 
		 * nilai properti adalah string DAN sama dengan string yang diberikan "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");
	}

	// Buat spesifikasi yang dipersonalisasi untuk memfilter properti metadata
	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());
		}
	}
}

Kesimpulan

Pada artikel ini, kita belajar membersihkan metadata dari dokumen dan gambar menggunakan Java. Sekarang Anda dapat membuat aplikasi java pembersih metadata Anda sendiri. Itu dapat mendukung penghapusan metadata dari dokumen pengolah kata, spreadsheet, presentasi, file PDF, gambar, email, eBuku, gambar, file zip, dan banyak lagi. Anda dapat mempelajari lebih lanjut tentang Java metadata API dari dokumentasi.

Lihat juga