เปรียบเทียบเอกสารคำในภาษาจาวา

ทำการเปรียบเทียบเอกสาร MS Word เพื่อทราบความแตกต่างระหว่างเอกสารสองเวอร์ชัน MS Word มีตัวเลือกในตัวเพื่อเปรียบเทียบเนื้อหาของเอกสารสองฉบับ อย่างไรก็ตาม ด้วยจำนวนเอกสารที่เพิ่มขึ้น การเปรียบเทียบเอกสารด้วยตนเองจึงเป็นเรื่องยาก เพื่อให้กระบวนการนี้เป็นไปโดยอัตโนมัติ บทความนี้ครอบคลุมวิธีการเปรียบเทียบเอกสาร MS Word (DOC/DOCX) สองฉบับโดยใช้ Java

Java API เพื่อเปรียบเทียบเอกสาร MS Word

Aspose.Words for Java คือ API การจัดการเอกสารที่มีประสิทธิภาพซึ่งช่วยให้คุณสร้าง อ่าน แก้ไข และแปลงเอกสาร MS Word นอกจากนี้ยังช่วยให้คุณสามารถเปรียบเทียบเอกสาร Word สองฉบับพร้อมกับการพิจารณาหรือละเว้นการจัดรูปแบบของเนื้อหา คุณสามารถ ดาวน์โหลด API หรือติดตั้งโดยใช้การกำหนดค่า Maven

<repository>
    <id>AsposeJavaAPI</id>
    <name>Aspose Java API</name>
    <url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
    <groupId>com.aspose</groupId>
    <artifactId>aspose-words</artifactId>
    <version>20.9</version>
    <classifier>jdk17</classifier>
</dependency>

เปรียบเทียบเอกสาร MS Word โดยใช้ Java

ต่อไปนี้เป็นขั้นตอนในการเปรียบเทียบเอกสาร Word อย่างง่ายโดยใช้ Aspose.Words for Java API

  • โหลดเอกสารที่จะเปรียบเทียบโดยใช้คลาส Document
  • เรียกใช้เมธอด Document.compare(Document, String, Date) เพื่อเปรียบเทียบเอกสารกับเอกสารที่ผ่านเป็นอาร์กิวเมนต์

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเปรียบเทียบเอกสาร MS Word สองฉบับโดยใช้ Java

Document docA = new Document(dataDir + "DocumentA.doc");
Document docB = new Document(dataDir + "DocumentB.doc");
docA.compare(docB, "user", new Date()); // docA now contains changes as revisions

การเปรียบเทียบเอกสาร Java Word - ละเว้นการจัดรูปแบบ

อาจมีบางกรณีที่เอกสารมีการจัดรูปแบบที่แตกต่างกันกับเนื้อหา ในกรณีเช่นนี้ คุณต้องการเปรียบเทียบข้อความเท่านั้นโดยไม่สนใจการจัดรูปแบบ ส่วนหัว/ส่วนท้าย เชิงอรรถ ตาราง ข้อคิดเห็น ฯลฯ ต่อไปนี้เป็นขั้นตอนในการละเว้นการจัดรูปแบบของเอกสารเมื่อเปรียบเทียบเอกสาร MS Word สองฉบับ

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีการเปรียบเทียบเอกสาร MS Word โดยไม่สนใจการจัดรูปแบบของเนื้อหาโดยใช้ Java

// สำหรับตัวอย่างและไฟล์ข้อมูลทั้งหมด โปรดไปที่ https://github.com/aspose-words/Aspose.Words-for-Java
String dataDir = Utils.getDataDir(CompareTwoWordDocumentswithCompareOptions.class);

com.aspose.words.Document docA = new com.aspose.words.Document(dataDir + "DocumentA.doc");
com.aspose.words.Document docB = new com.aspose.words.Document(dataDir + "DocumentB.doc");

com.aspose.words.CompareOptions options = new com.aspose.words.CompareOptions();
options.setIgnoreFormatting(true);
options.setIgnoreHeadersAndFooters(true);
options.setIgnoreCaseChanges(true);
options.setIgnoreTables(true);
options.setIgnoreFields(true);
options.setIgnoreComments(true);
options.setIgnoreTextboxes(true);
options.setIgnoreFootnotes(true);

// ขณะนี้ DocA มีการเปลี่ยนแปลงเป็นการแก้ไข
docA.compare(docB, "user", new Date(), options);
if (docA.getRevisions().getCount() == 0)
    System.out.println("Documents are equal");
else
    System.out.println("Documents are not equal");

กำหนดเอกสาร Word เป้าหมายสำหรับการเปรียบเทียบความแตกต่าง

Aspose.Words for Java ยังอนุญาตให้คุณระบุเอกสาร Word ต้นทางระหว่างการเปรียบเทียบ สำหรับสิ่งนี้ คุณสามารถใช้คุณสมบัติ CompareOptions.setTarget() ซึ่งเกี่ยวข้องกับตัวเลือก “แสดงการเปลี่ยนแปลงใน” ของ MS Word ตัวอย่างรหัสต่อไปนี้แสดงวิธีการระบุเอกสารเป้าหมายในการเปรียบเทียบ

Document docA = new Document(dataDir + "TestFile.doc");
Document docB = new Document(dataDir + "TestFile - Copy.doc");

CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);
// เกี่ยวข้องกับตัวเลือก "แสดงการเปลี่ยนแปลงใน" ของ Microsoft Word ในกล่องโต้ตอบ "เปรียบเทียบเอกสาร"
options.setTarget(ComparisonTargetType.NEW);

docA.compare(docB, "user", new Date(), options);

ตั้งค่า Granularity เพื่อเปรียบเทียบไฟล์ Word ใน Java

คุณยังสามารถตั้งค่าความละเอียดของการเปลี่ยนแปลงเมื่อเปรียบเทียบเอกสาร MS Word สองฉบับ สามารถทำได้โดยใช้คุณสมบัติ CompareOptions.setGranularity() ต่อไปนี้คือตัวเลือกความละเอียดที่เป็นไปได้

ตัวอย่างโค้ดต่อไปนี้แสดงวิธีตั้งค่าความละเอียดเมื่อเปรียบเทียบเอกสาร MS Word โดยใช้ Java

DocumentBuilder builderA = new DocumentBuilder(new Document());
DocumentBuilder builderB = new DocumentBuilder(new Document());

builderA.writeln("This is A simple word");
builderB.writeln("This is B simple words");

CompareOptions co = new CompareOptions();
co.setGranularity(Granularity.CHAR_LEVEL);

builderA.getDocument().compare(builderB.getDocument(), "author", new Date(), co);

บทสรุป

ในบทความนี้ คุณได้เห็นวิธีการเปรียบเทียบเอกสาร MS Word สองชุดในสถานการณ์ต่างๆ โดยใช้ Java คุณสามารถสำรวจเพิ่มเติมเกี่ยวกับ Aspose.Words for Java โดยใช้ เอกสารประกอบ

ลองฟรี

Aspose เสนอ ใบอนุญาตชั่วคราว ให้คุณลองใช้ API ได้ฟรี คุณสามารถประเมิน Aspose.Words for Java ได้

ดูสิ่งนี้ด้วย

แปลง DOC/DOCX เป็น JPG ใน C# .NETแปลง DOC/DOCX เป็น JPG ใน Javaแปลง DOC/DOCX เป็น PNG ใน C# .NET
แปลง DOC/DOCX เป็น PNG ใน Javaแปลง DOCX เป็น HTML ใน C#แปลง DOCX เป็น TXT ใน Python
ผสานเอกสาร MS Word โดยใช้ Javaสร้าง Rich Word Documents ใน JavaMS Word DOC/DOCX เป็น PDF ใน Java
PNG เป็น Word ใน C# .NETJPG เป็น Word ใน C# .NETรูปภาพเป็น Word ใน C#
Word เป็น HTML ใน C#Word DOCX เป็น Markdown ใน Javaแยกรูปภาพออกจาก Word DOC ใน Java
Word DOC เป็น Markdown ใน JavaWord DOC DOCX เป็น Markdown ใน C#แยกข้อความจากเอกสาร Word ในภาษา Java
ผสานเอกสาร MS Word โดยใช้ C# .NETWord DOC เป็น PNG, JPEG, BMP, GIF หรือ TIFF ใน C#Word DOC เป็น PNG, JPEG, BMP, GIF หรือ TIFF ใน Java