מאמר זה שימושי עבור מפתחי Java שמחפשים דרך למצוא ולהסיר סימני מים של טקסט או תמונה ממסמכי PDF, Word, Excel, PowerPoint ו-Visio. באחד הפוסטים שלנו למדנו איתור והסרה של סימני מים ממסמכים ב-C#. בוא נקפוץ לראות במהירות קצת על Java API המאפשר הוספה, איתור והסרה של סימני מים ממסמכים שונים בדרכים שונות.

Java API עבור סימון מים והסרה

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

אתה יכול לקבל את ה-JAR מקטע הורדות, או להוסיף את התצורה הבאה ב-pom.xml של יישום Java מבוסס Maven שלך. לפרטי API, בקר ב-API Reference.

<repository>
	<id>GroupDocsJavaAPI</id>
	<name>GroupDocs Java API</name>
	<url>http://repository.groupdocs.com/repo/</url>
</repository>
<dependency>
        <groupId>com.groupdocs</groupId>
        <artifactId>groupdocs-watermark</artifactId>
        <version>20.5</version> 
</dependency>

שלבים להסרת סימני מים ממסמך ב-Java

לפני שנתחיל, עיין במסמך ה-PDF הבא המכיל סימן מים של טקסט כמו גם סימן מים לתמונה. אנו נשתמש במסמך זה ונסיר ממנו את סימני המים.

קובץ PDF עם סימני מים - GroupDocs
  1. צור פרויקט חדש.

  2. הוסף את הייבוא הבא.

import com.groupdocs.watermark.Watermarker;
import com.groupdocs.watermark.search.ImageDctHashSearchCriteria;
import com.groupdocs.watermark.search.ImageSearchCriteria;
import com.groupdocs.watermark.search.PossibleWatermarkCollection;
import com.groupdocs.watermark.search.SearchCriteria;
import com.groupdocs.watermark.search.TextSearchCriteria;
  1. צור מופע של מחלקה Watermarker וטען את מסמך המקור.
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf");
  1. מצא את סימני המים על סמך קריטריוני החיפוש המוגדרים באמצעות שיטת החיפוש.
// הגדר קריטריון חיפוש עבור סימן מים של תמונה
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// הגדר קריטריון חיפוש עבור סימן מים טקסט
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// שילוב הקריטריונים לחיפוש טקסט ותמונה
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);
  1. חזרו על איסוף סימני המים והסר סימני מים בשיטת removeAt.
//חזור על איסוף סימני המים האפשרי, בדוק והסר סימני מים
while(possibleWatermarks.getCount()>0)
{
	if (possibleWatermarks.get_Item(0).getImageData() != null)
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Image Watermark.");
	}
	else
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Text Watermark.");
	}
} 
  1. שמור את המסמך שנוצר באמצעות שיטת השמירה.
 watermarker.save("filepath/without_watermark.pdf");
 watermarker.close(); 

ישנן גם כמה דרכים אחרות לאיתור והסרה של סימני מים ממסמכים בשיטות שונות. אם אתה רוצה להסיר את כל סימני המים של מסמך, או רוצה להיפטר מכמה סימני מים סלקטיביים מסוגים שונים:

  • אתה יכול לאסוף את כל סימני המים האפשריים.
  • חזור על אוסף סימני המים או גש ישירות לסימן המים עם האינדקס.
  • בדוק אם יש צורך בסוג ונתונים של סימן מים.
  • הסר אותו, אם הוא עונה על הדרישה שלך.

remove, removeAt ו-clear הן השיטות שניתן להשתמש בהן בהתאם להסרת סימני מים. לפרטים נוספים, אתה יכול לבקר במאמר תיעוד על חיפוש ושינוי סימני מים ב-Java.

קוד מלא

// מצא והסר סימני מים ממסמכי PDF, Word, Excel, PowerPoint ו-Visio ב-Java
Watermarker watermarker = new Watermarker("filepath/watermarked.pdf"); // Provide any supported document

// הגדר קריטריון חיפוש עבור סימן מים של תמונה
ImageSearchCriteria imageSearchCriteria = new ImageDctHashSearchCriteria("filepath/watermark.png");
imageSearchCriteria.setMaxDifference(0.2); // Set how much the watermark can differ from the provided image.

// הגדר קריטריון חיפוש עבור סימן מים טקסט
TextSearchCriteria textSearchCriteria = new TextSearchCriteria("CONFIDENTIAL");

// שילוב הקריטריונים לחיפוש טקסט ותמונה
SearchCriteria combinedSearchCriteria = imageSearchCriteria.or(textSearchCriteria);
PossibleWatermarkCollection possibleWatermarks = watermarker.search(combinedSearchCriteria);

//חזור על איסוף סימני המים האפשרי, בדוק והסר סימני מים
while(possibleWatermarks.getCount()>0)
{
	if (possibleWatermarks.get_Item(0).getImageData() != null)
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Image Watermark.");
	}
	else
	{
		possibleWatermarks.removeAt(0);
		System.out.println("Removed Text Watermark.");
	}
} 
watermarker.save("filepath/without_watermark.pdf");
watermarker.close(); 

תוצאות

להלן צילום המסך של מסמך ה-PDF שנוצר שאנו מקבלים לאחר הסרת סימני המים.

קובץ PDF שנוצר לאחר הסרת סימני מים באמצעות Watermarking Java API של GroupDocs

סיכום

אני מאמין, כמפתח Java, לא תהסס יותר למצוא ולאחר מכן להסיר כל סוג של סימני מים ממסמכי עיבוד תמלילים נתמכים של Microsoft ו-OpenOffice, גיליונות אלקטרוניים, מצגות, מסמכי PDF וציורי Visio.

תוכל לחקור מידע נוסף על ה-API מתוך תיעוד. בכל שאלה, פנה אלינו @ פורום.

ראה גם