ข้อมูลเมตาคือข้อมูลที่ให้ข้อมูลเกี่ยวกับข้อมูลจริง โดยทั่วไปเรียกว่า “ข้อมูลเกี่ยวกับข้อมูล” เมื่อส่งไฟล์ให้ผู้อื่น การส่งข้อมูลเมตาไปพร้อมกันนั้นไม่ใช่แนวปฏิบัติที่ดี มันสามารถเปิดเผยข้อมูลของคุณกับผู้รับที่คุณอาจไม่ต้องการแบ่งปัน ตัวอย่างบางส่วน ได้แก่ ชื่อ, ชื่อบริษัท, วันที่แก้ไขเอกสาร, ยี่ห้อและรุ่นของกล้อง ฯลฯ ในบทความนี้ เราจะลบข้อมูลเมตาทางโปรแกรมออกจากรูปภาพและเอกสารโดยใช้ Java

Java Metadata Cleaner API

GroupDocs.Metadata for Java เป็น API ข้อมูลเมตาสำหรับ Java ที่รองรับมาตรฐานข้อมูลเมตายอดนิยมส่วนใหญ่ เช่น EXIF, XMP, IPTC, แท็ก ID3 เป็นต้น ช่วยให้นักพัฒนา Java สามารถเพิ่ม แก้ไข แยก และลบข้อมูลเมตาได้ ด้วยตัวเลือกต่างๆ จากรายการขนาดใหญ่ของ รูปแบบที่รองรับ ของเอกสาร รูปภาพ และไฟล์อื่นๆ

ขั้นตอนในบทความนี้และตัวอย่างโค้ดใช้ GroupDocs.Metadata API ดังนั้น ก่อนที่คุณจะดำเนินการต่อ โปรดตรวจสอบให้แน่ใจว่าได้เตรียมสภาพแวดล้อมการพัฒนาโดยใช้ตัวเลือกใดๆ ต่อไปนี้:

  • รับไฟล์ JAR จากส่วน ดาวน์โหลด
  • เพิ่มการกำหนดค่า pom.xml ต่อไปนี้ในแอปพลิเคชันจาวาที่ใช้ 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>

ลบข้อมูลเมตาออกจากเอกสารโดยใช้ Java

หากต้องการลบคุณสมบัติข้อมูลเมตาที่มีอยู่ทั้งหมดโดยไม่ต้องใช้ตัวกรองใดๆ และเพื่อความปลอดภัยในยุคของ COVID-19 ให้ใช้วิธีการฆ่าเชื้อ ต่อไปนี้เป็นขั้นตอนในการลบข้อมูลเมตาออกจากเอกสารโดยใช้ GroupDocs.Metadata for Java

  • สร้างอินสแตนซ์อ็อบเจ็กต์ของคลาส Metadata โดยผ่านพาธของเอกสารเป้าหมายเป็นพารามิเตอร์
  • เรียกวิธี sanitize จะส่งกลับจำนวนของคุณสมบัติข้อมูลเมตาที่ถูกลบ
  • บันทึกไฟล์ที่ส่งออกด้วยข้อมูลเมตาที่ล้างโดยใช้เมธอด save

ตัวอย่างโค้ด Java ต่อไปนี้แสดงวิธีการลบและล้างข้อมูลเมตาจากเอกสาร

/*
* ลบคุณสมบัติข้อมูลเมตาที่ตรวจพบทั้งหมดออกจาก Word, Excel, 
* PowerPoint, PDF และเอกสารอื่นๆ ที่ใช้ Java
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata 

ลบข้อมูลเมตาออกจากรูปภาพโดยใช้ Java

หากคุณต้องการลบข้อมูลเมตาทั้งหมดออกจากรูปภาพของคุณโดยใช้ Java คุณสามารถใช้วิธีการฆ่าเชื้อแบบเดียวกันโดยทำตามขั้นตอนเดียวกัน:

  • สร้างออบเจกต์ของคลาส Metadata โดยผ่านเส้นทางเอกสารเป้าหมายเป็นพารามิเตอร์
  • เรียกวิธี sanitize
  • บันทึกไฟล์ผลลัพธ์โดยใช้เมธอด save
/*
* ลบคุณสมบัติข้อมูลเมตาที่ตรวจพบทั้งหมดออกจาก JPEG, PNG,
* WebP, BMP, GIF, TIFF และรูปภาพอื่นๆ โดยใช้ Java
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata

ลบข้อมูลเมตาที่เลือกออกจากเอกสารและรูปภาพโดยใช้ Java

ไม่จำเป็นต้องลบข้อมูลเมตาที่มีอยู่ทั้งหมดออกจากไฟล์เสมอไป อย่างไรก็ตาม บางครั้งเราต้องการลบคุณสมบัติข้อมูลเมตาที่เลือก ขั้นตอนต่อไปนี้แสดงวิธีค้นหาและลบข้อมูลเมตาโดยใช้ชื่อเฉพาะของคุณสมบัติ

  • สร้างวัตถุ Metadata เพื่อโหลดเอกสารเป้าหมายหรือไฟล์รูปภาพ
  • สร้างข้อมูลจำเพาะส่วนบุคคลเพื่อค้นหาคุณสมบัติของข้อมูลเมตา
  • เรียกใช้เมธอด removeProperties และส่งผ่านข้อมูลจำเพาะส่วนบุคคล
  • บันทึกไฟล์ผลลัพธ์โดยใช้เมธอด save
// ลบคุณสมบัติข้อมูลเมตาออกจากเอกสารและรูปภาพที่ตรงตามตัวกรองที่กำหนดเองโดยใช้ Java
public class RemoveMetadataProperties {
	public static void removeMetadataProperties() {
		Metadata metadata = new Metadata("filePath/document.docx");
		/*
		 * ลบคุณสมบัติทั้งหมดที่: 
		 * มีชื่อผู้เขียนเอกสาร OR
		 * มันหมายถึงตัวแก้ไขล่าสุด OR 
		 * ค่าคุณสมบัติเป็นสตริงและเท่ากับสตริงที่กำหนด "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");
	}

	// สร้างข้อกำหนดส่วนบุคคลเพื่อกรองคุณสมบัติของข้อมูลเมตา
	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());
		}
	}
}

บทสรุป

ในบทความนี้ เราได้เรียนรู้การล้างข้อมูลเมตาจากเอกสารและรูปภาพโดยใช้ Java ตอนนี้คุณสามารถสร้างแอปพลิเคชันจาวาตัวล้างข้อมูลเมตาของคุณเองได้แล้ว สามารถรองรับการลบข้อมูลเมตาออกจากเอกสารประมวลผลคำ สเปรดชีต งานนำเสนอ ไฟล์ PDF รูปภาพ อีเมล eBook ภาพวาด ไฟล์ zip และอื่นๆ อีกมากมาย คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ API ข้อมูลเมตาของ Java ได้จาก เอกสารประกอบ

ดูสิ่งนี้ด้วย