หลังจากอ่านบทความนี้ เราจะสามารถเปรียบเทียบไฟล์ข้อความ ไฟล์ Word ไฟล์ PDF และเอกสารอื่นๆ ในแอปพลิเคชันที่ใช้ Java ได้ เมื่อใช้คุณสมบัตินี้ เราสามารถเปรียบเทียบใบแจ้งหนี้ สัญญา งานนำเสนอ การออกแบบ AutoCAD รายการราคา หรือไฟล์โปรแกรม เรายังมีสิทธิ์ที่จะเน้นการเปลี่ยนแปลงที่ระบุและมีตัวเลือกที่จะยอมรับหรือปฏิเสธการเปลี่ยนแปลงใดๆ เราสามารถสร้าง เครื่องมือเปรียบเทียบเอกสาร ของเราเองได้คล้ายกับที่เปิดตัวโดย 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 เพื่อรับผลลัพธ์ของการเปรียบเทียบ วิธีการเปรียบเทียบใช้ชื่อของเอกสารเอาต์พุตเป็นพารามิเตอร์
// 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

ในทำนองเดียวกัน คุณสามารถส่งเอกสารเป็นสตรีมไปยังคลาสตัวเปรียบเทียบเพื่อเปรียบเทียบกับเอกสารที่สอง นี่คือโค้ด 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 ขั้นตอนจะเหมือนกับการเปรียบเทียบเอกสารสองฉบับอื่นๆ ทุกประการ:

  • เริ่มต้นด้วยการส่งไฟล์ข้อความไปยังคลาส Comparer
  • เพิ่มไฟล์ที่สองโดยใช้เมธอด add
  • เรียกใช้เมธอด compare
// 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 คุณสามารถดาวน์โหลดและเรียกใช้ตัวอย่างได้อย่างรวดเร็วโดยใช้คำแนะนำ เริ่มต้นใช้งาน ในกรณีที่มีข้อสงสัย โปรดดูเอกสารหรือติดต่อเราได้ตลอดเวลาที่ ฟอรัม