فراداده داده ای است که اطلاعاتی را در مورد داده های واقعی ارائه می دهد. معمولاً به عنوان “داده در مورد داده” توصیف می شود. هنگام ارسال یک فایل برای شخصی، ارسال ابرداده به همراه آن کار خوبی نیست. این می تواند اطلاعات شما را به گیرنده نشان دهد که ممکن است نخواهید به اشتراک بگذارید. برخی از نمونه ها عبارتند از؛ نام، نام شرکت، تاریخ اصلاح سند، ساخت و مدل دوربین و غیره. در این مقاله به حذف ابرداده ها از تصاویر و اسناد با استفاده از Java خواهیم پرداخت.

Java Metadata Cleaner API

GroupDocs.Metadata for Java یک API ابرداده برای Java است که از اکثر استانداردهای متادیتا محبوب مانند EXIF، XMP، IPTC، تگ ID3 و غیره پشتیبانی می کند. این به توسعه دهندگان Java اجازه می دهد تا متادیتا را اضافه، تغییر دهند، استخراج و حذف کنند. با گزینه های مختلف از لیست بزرگی از فرمت های پشتیبانی شده اسناد، تصاویر و فایل های دیگر.

مراحل این مقاله و نمونه کد از API GroupDocs.Metadata استفاده می کنند. بنابراین قبل از ادامه، لطفاً مطمئن شوید که محیط توسعه را با استفاده از یکی از گزینه های زیر آماده کرده اید:

  • فایل JAR را از قسمت دانلودها دریافت کنید.
  • پیکربندی pom.xml زیر را در برنامه های Java مبتنی بر 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>

با استفاده از جاوا، متادیتا را از اسناد حذف کنید

برای حذف تمام ویژگی‌های فراداده موجود بدون اعمال هیچ فیلتری و برای ایمن ماندن در دوران کووید-19، از روش پاکسازی استفاده کنید. در زیر مراحل حذف ابرداده از اسناد با استفاده از GroupDocs.Metadata for Java آمده است.

  • شیء کلاس Metadata را با عبور از مسیر سند هدف به عنوان پارامتر، نمونه سازی کنید.
  • روش sanitize را فراخوانی کنید. تعداد ویژگی های ابرداده حذف شده را برمی گرداند.
  • فایل خروجی را با ابرداده پاک شده با استفاده از روش save ذخیره کنید.

نمونه کد Java زیر نحوه حذف و پاک کردن متادیتا را از سند نشان می دهد.

/*
* تمام ویژگی های فراداده شناسایی شده را از Word، Excel، 
* پاورپوینت، PDF و سایر اسناد با استفاده از جاوا
*/
Metadata metadata = new Metadata("filePath/document.pdf");
int affected = metadata.sanitize();
metadata.save("filePath/output.pdf"); // Save the output document with no metadata 

با استفاده از جاوا، متادیتا را از تصاویر حذف کنید

اگر می‌خواهید با استفاده از جاوا، تمام ابرداده‌ها را از تصاویر خود حذف کنید، می‌توانید با دنبال کردن مراحل مشابه از همان روش پاکسازی استفاده کنید:

  • شیء کلاس Metadata را ایجاد کنید و مسیر سند هدف را به عنوان پارامتر ارسال کنید.
  • روش sanitize را فراخوانی کنید.
  • فایل خروجی را با استفاده از روش save ذخیره کنید.
/*
* حذف تمام ویژگی های فراداده شناسایی شده از JPEG، PNG،
* WebP، BMP، GIF، TIFF و سایر تصاویر با استفاده از جاوا
*/
Metadata metadata = new Metadata("filePath/document.jpg");
int affected = metadata.sanitize();
metadata.save("filePath/output.jpg"); // Save the output image having no metadata

با استفاده از جاوا، فراداده انتخابی را از اسناد و تصاویر حذف کنید

همیشه نیازی به حذف تمام ابرداده های موجود از فایل ها نیست، با این حال، گاهی اوقات می خواهیم ویژگی های ابرداده انتخابی را حذف کنیم. مراحل زیر نحوه مکان یابی و حذف فراداده را با استفاده از نام خاص ویژگی نشان می دهد.

  • برای بارگیری سند یا فایل تصویر مورد نظر، شیء 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 را یاد گرفتیم. اکنون می توانید برنامه Java پاک کننده ابرداده خود را بسازید. این می تواند از حذف ابرداده از اسناد پردازش کلمه، صفحات گسترده، ارائه ها، فایل های PDF، تصاویر، ایمیل ها، کتاب های الکترونیکی، نقاشی ها، فایل های فشرده و بسیاری موارد دیگر پشتیبانی کند. می‌توانید اطلاعات بیشتری درباره API فراداده Java از مستندات کاوش کنید.

همچنین ببینید