بعد الاطلاع على هذه المقالة ، سنتمكن من مقارنة الملفات النصية وملفات Word وملفات PDF والمستندات الأخرى في التطبيقات المستندة إلى Java. باستخدام هذه الميزة ، يمكننا مقارنة الفواتير أو العقود أو العروض التقديمية أو تصميمات AutoCAD أو قوائم الأسعار أو ملفات البرمجة. سوف نتمتع أيضًا بامتياز تمييز التغييرات المحددة ولدينا خيار إما قبول أو رفض أي تغيير. يمكننا حتى بناء أداة مقارنة المستندات الخاصة بنا على غرار تلك التي أطلقتها GroupDocs ، باستخدام واجهة برمجة تطبيقات مقارنة المستندات لجافا.
أدناه ، سوف تتطرق إلى الموضوعات التالية:
- قارن ملفات Word وإظهار الاختلافات.
- قارن ملفات Word باستخدام التدفقات.
- قبول أو رفض التغييرات المحددة في ملف Word.
- قارن الملفات النصية وقم بتمييز الاختلافات.
- قارن ملفات PDF باستخدام Java.
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();
}
هذا هو مستند الإخراج الذي يعرض نتيجة المقارنة لمطابقة ملفين نصيين باستخدام الكود أعلاه.

قارن ملفات 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.

أنظر أيضا
العديد من الأمثلة الأخرى مفتوحة المصدر متاحة للجمهور في GitHub Repository. يمكنك تنزيل الأمثلة وتشغيلها بسرعة باستخدام دليل البدء. في حالة وجود أي استفسار ، انظر إلى الوثائق أو تواصل معنا في أي وقت على المنتدى.