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