بعد الاطلاع على هذه المقالة ، سنتمكن من مقارنة الملفات النصية وملفات Word وملفات PDF والمستندات الأخرى في التطبيقات المستندة إلى Java. باستخدام هذه الميزة ، يمكننا مقارنة الفواتير أو العقود أو العروض التقديمية أو تصميمات AutoCAD أو قوائم الأسعار أو ملفات البرمجة. سوف نتمتع أيضًا بامتياز تمييز التغييرات المحددة ولدينا خيار إما قبول أو رفض أي تغيير. يمكننا حتى بناء أداة مقارنة المستندات الخاصة بنا على غرار تلك التي أطلقتها GroupDocs ، باستخدام واجهة برمجة تطبيقات مقارنة المستندات لجافا.

أدناه ، سوف تتطرق إلى الموضوعات التالية:

Java Document Comparison API

كشرط مسبق ، قد تحصل على GroupDocs.Comparison for Java من قسم التنزيلات. أيضًا ، يمكنك فقط إضافة ما يلي في ملف pom.xml الخاص بك في حالة التطبيقات القائمة على المخضرمين:

المستودع والتوابع

<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. نتيجة لذلك ، ستحصل على المستند الناتج الذي سيسلط الضوء على التغييرات المحددة.

  • قم بتهيئة الكائن المقارن بمسار المستند المصدر.
  • أضف المستند الثاني للمقارنة باستخدام طريقة إضافة.
  • قم باستدعاء طريقة قارن للحصول على نتيجة المقارنة. تأخذ طريقة المقارنة اسم مستند الإخراج كمعامل.
// 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 للنص باستخدام Stream

يمكنك بالمثل تمرير المستند كتدفق إلى فئة المقارنة للحصول عليه مقارنة بالمستند الثاني. إليك كود 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

باستخدام فئة المقارنة ، يمكننا أيضًا مقارنة أي ملف نصي. يوجد أدناه رمز مشابه لمقارنة ملفين نصيين في Java. الخطوات مماثلة تمامًا لمقارنة أي مستندين آخرين:

  • ابدأ بتمرير الملف النصي إلى فئة المقارنة.
  • أضف الملف الثاني باستخدام طريقة إضافة.
  • قم باستدعاء طريقة قارن.
// 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. يمكنك تنزيل الأمثلة وتشغيلها بسرعة باستخدام دليل البدء. في حالة وجود أي استفسار ، انظر إلى الوثائق أو تواصل معنا في أي وقت على المنتدى.