پس از مرور این مقاله، می‌توانیم فایل‌های متنی، فایل‌های Word، فایل‌های PDF و سایر اسناد را در برنامه‌های مبتنی بر Java مقایسه کنیم. با استفاده از این قابلیت می توانیم فاکتورها، قراردادها، ارائه ها، طرح های اتوکد، لیست قیمت ها یا فایل های برنامه نویسی را با هم مقایسه کنیم. ما همچنین این امتیاز را خواهیم داشت که تغییرات شناسایی شده را برجسته کنیم و این امکان را داریم که هر گونه تغییر را بپذیریم یا رد کنیم. ما حتی می‌توانیم [ابزار مقایسه اسناد 2 خودمان را مشابه ابزاری که توسط GroupDocs راه‌اندازی شده است، با استفاده از API مقایسه اسناد برای Java بسازیم.

در زیر موضوعات زیر را مرور خواهید کرد:

Java Document Comparison API

به عنوان پیش نیاز، می توانید GroupDocs.Comparison for Java را از بخش دانلودها دریافت کنید. همچنین، فقط می‌توانید موارد زیر را در مورد برنامه‌های مبتنی بر maven در 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 مقایسه کنید. در نتیجه، سند حاصل را دریافت خواهید کرد که تغییرات شناسایی شده را برجسته می کند.

  • شیء 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();
}

در اینجا سند خروجی است که نتیجه مقایسه تطبیق دو فایل متنی را با استفاده از کد بالا نشان می دهد.

مقایسه فایل های متنی با استفاده از جاوا

مقایسه فایل های 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 در دسترس هستند. می توانید با استفاده از راهنمای 19 نمونه ها را دانلود و به سرعت اجرا کنید. در صورت هرگونه سوال، به مستندات نگاه کنید یا هر زمان که بخواهید در [فروم 20 با ما تماس بگیرید.