לאחר שנעבור על מאמר זה, נוכל להשוות קבצי טקסט, קובצי Word, קבצי PDF ומסמכים אחרים ביישומים מבוססי Java. על ידי שימוש בתכונה זו, אנו יכולים להשוות חשבוניות, חוזים, מצגות, עיצובי AutoCAD, מחירונים או קבצי תכנות. כמו כן, נזכה להדגיש את השינויים שזוהו ולאפשר לנו לקבל או לדחות כל שינוי. אנחנו יכולים אפילו לבנות [כלי השוואת מסמכים] משלנו 2 בדומה לזה שהושק על ידי GroupDocs, באמצעות ממשק API להשוואת מסמכים עבור Java.

להלן תעבור על הנושאים הבאים:

API להשוואת מסמכים של Java

כתנאי מוקדם, אתה עשוי לקבל את GroupDocs.Comparison for Java מהסעיף הורדות. כמו כן, אתה יכול פשוט להוסיף את הדברים הבאים ב-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-comparison</artifactId>
        <version>20.4</version> 
</dependency>

השווה קבצי Word והצג הבדלים באמצעות Java

השלבים שלהלן יראו לך להשוות בין שני מסמכי Word בכמה שורות בלבד של קוד Java. כתוצאה מכך, תקבל את המסמך שנוצר שידגיש את השינויים שזוהו.

  • אתחול האובייקט Comparer עם נתיב מסמך המקור.
  • הוסף את המסמך השני להשוואה בשיטת add.
  • התקשר לשיטת השוואה כדי לקבל את תוצאת ההשוואה. שיטת ההשוואה לוקחת את השם של מסמך הפלט כפרמטר.
// Compare two Word files from the provided location on disk
Comparer comparer = new Comparer("source.docx");
try {
    comparer.add("target.docx");
    comparer.compare("comparison.docx");
}
finally {
    comparer.dispose();
}

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

word-file-text-comparison-and-show-dirffer

השווה קבצי Word עבור טקסט באמצעות Stream

אתה יכול באופן דומה להעביר את המסמך כזרם למחלקת Comparer כדי להשוות אותו למסמך השני. הנה קוד Java כדי לתת לך מושג ברור:

// Compare two Word file using Stream
Comparer comparer = new Comparer(new FileInputStream("source.docx"));
try {
    comparer.add(new FileInputStream("target.docx"));
    comparer.compare(new FileOutputStream("result.docx"));
} 
finally {
    comparer.dispose();
}

קבל או דחה את השינויים שהשוו בקובץ Word באמצעות Java

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

// Accept or Reject the identified changes of Word document in Java
Comparer comparer = new Comparer(source);
try {
    comparer.add(target);
    comparer.compare();
    ChangeInfo[] changes = comparer.getChanges();
    System.out.println("changes.length: " + changes.length + ".");
    // Accept or Reject the changes
   for (int n = 0; n < changes.length; n++) {
    	if (n % 2 == 0) {
    		changes[n].setComparisonAction(ComparisonAction.ACCEPT);
    	}
    	else {
    		changes[n].setComparisonAction(ComparisonAction.REJECT);
    	}
    }
    // Apply your decisions to get the resultant document.
    comparer.applyChanges(outputFileName, new SaveOptions(), new ApplyChangeOptions(changes));
}
finally {
    comparer.dispose();
}

השווה קבצי טקסט והצג הבדלים באמצעות Java

באמצעות המחלקה Comparer, נוכל גם להשוות כל קובץ טקסט. להלן הקוד הדומה להשוואת שני קבצי טקסט ב-Java. השלבים זהים לחלוטין להשוואת כל שני מסמכים אחרים:

  • התחל עם העברת קובץ הטקסט למחלקה Comparer.
  • הוסף את הקובץ השני בשיטת add.
  • קרא לשיטת השוואה.
// Compare two text files to identify and highlight changes.
Comparer comparer = new Comparer("source.txt");
try {
    comparer.add("target.txt");
    comparer.compare("comparison.txt");
}
finally {
    comparer.dispose();
}

להלן מסמך הפלט המציג את תוצאת ההשוואה של התאמת שני קבצי טקסט באמצעות הקוד לעיל.

השווה קבצי טקסט באמצעות Java

השווה קבצי PDF עבור הבדל טקסט באמצעות Java

אנו יכולים להשוות את קבצי ה-PDF באמצעות אותו קוד לעיל, ועל ידי שינוי סיומות הקובץ ל-".pdf". רק להזכיר, הקוד שלהלן משווה שני קבצי pdf ומראה הבדלים ב-Java.

// Compare two PDF file using Stream
Comparer comparer = new Comparer(new FileInputStream("source.pdf"));
comparer.add(new FileInputStream("target.pdf"));
comparer.compare(new FileOutputStream("result.pdf"));

להלן התוצאה לאחר השוואת קבצי ה-PDF.

השוואת טקסט של קבצי PDF

ראה גם

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