מטא נתונים הם הנתונים המספקים מידע על הנתונים בפועל. זה מתואר בדרך כלל כ"נתונים על נתונים". כששולחים קובץ למישהו, זה לא נוהג טוב לשלוח מטא נתונים. זה יכול לחשוף את המידע שלך למקלט שאולי לא תרצה לשתף. חלק מהדוגמאות כוללות; שם, שם חברה, תאריך שינוי מסמך, יצרן ודגם של מצלמה וכו’. במאמר זה, אנו נסיר מטא-נתונים באופן פרוגרמטי מהתמונות והמסמכים באמצעות Java.

Java Metadata Cleaner API

GroupDocs.Metadata for Java הוא מטא נתונים API עבור Java התומך ברוב תקני המטא נתונים הפופולריים כמו EXIF, XMP, IPTC, ID3 תג וכו’. הוא מאפשר למפתחי Java להוסיף, לשנות, לחלץ ולהסיר מטא נתונים עם אפשרויות שונות מתוך רשימה גדולה של פורמטים נתמכים של מסמכים, תמונות וקבצים אחרים.

השלבים במאמר זה ודוגמאות קוד משתמשים ב-GroupDocs.Metadata API. אז לפני שתמשיך, אנא הקפד להכין את סביבת הפיתוח באמצעות כל אחת מהאפשרויות הבאות:

  • קבל את קובץ ה-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>

הסר מטא נתונים ממסמכים באמצעות Java

כדי להסיר את כל מאפייני המטא נתונים הזמינים מבלי להחיל שום מסנן, ולהישאר בטוח בעידן ה-COVID-19, השתמש בשיטת החיטוי. להלן השלבים להסרת מטא נתונים מהמסמכים באמצעות GroupDocs.Metadata עבור Java.

  • בצע מופע של האובייקט של המחלקה Metadata תוך העברת הנתיב של מסמך היעד כפרמטר.
  • קרא לשיטת ניקוי. הוא מחזיר את מספר מאפייני המטא נתונים שהוסרו.
  • שמור את קובץ הפלט עם מטא נתונים שנמחקו בשיטת 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. עכשיו אתה יכול לבנות אפליקציית Java לניקוי מטא נתונים משלך. זה יכול לתמוך בהסרת מטא נתונים ממסמכי עיבוד תמלילים, גיליונות אלקטרוניים, מצגות, קבצי PDF, תמונות, מיילים, ספרים אלקטרוניים, שרטוטים, קובצי zip ועוד רבים אחרים. אתה יכול לחקור עוד על ה-API של Java metadata מתוך תיעוד.

ראה גם