Skip to content

Latest commit

 

History

History
340 lines (264 loc) · 32.5 KB

File metadata and controls

340 lines (264 loc) · 32.5 KB
categories
Java Development
date 2025-12-21
description เรียนรู้วิธีเปรียบเทียบเอกสาร Word ด้วย Java โดยใช้สตรีมกับ GroupDocs.Comparison บทเรียนนี้ครอบคลุมการตั้งค่า, โค้ด, เคล็ดลับด้านประสิทธิภาพ, และการแก้ไขปัญหา.
keywords java document comparison, compare word documents java, groupdocs comparison tutorial, java stream document comparison, how to compare documents in java using streams
lastmod 2025-12-21
linktitle Java Document Comparison Guide
tags
document-comparison
java-streams
groupdocs
word-documents
title เปรียบเทียบเอกสาร Word ด้วย Java และ Streams – คู่มือ GroupDocs
type docs
url /th/java/basic-comparison/document-comparison-groupdocs-java/
weight 1

เปรียบเทียบเอกสาร Word java ด้วย streams – คู่มือ GroupDocs

หากคุณเคยประสบปัญหาในการเปรียบเทียบหลายเวอร์ชันของเอกสาร Word ในแอปพลิเคชัน Java ของคุณ คุณไม่ได้อยู่คนเดียว ไม่ว่าคุณจะกำลังสร้างแพลตฟอร์มการทำงานร่วมกัน, ใช้ระบบควบคุมเวอร์ชัน, หรือแค่ต้องการติดตามการเปลี่ยนแปลงระหว่างการแก้ไขเอกสาร, compare word documents java สามารถกลายเป็นเรื่องซับซ้อนได้อย่างรวดเร็วหากไม่มีวิธีที่เหมาะสม

นี่คือจุดที่ GroupDocs.Comparison for Java ส่องแสงออกมา แทนการต่อสู้กับการจัดการไฟล์ด้วยตนเองหรือการสร้างตรรกะการเปรียบเทียบตั้งแต่ต้น คุณสามารถใช้การเปรียบเทียบเอกสารแบบ stream เพื่อประมวลผลไฟล์อย่างมีประสิทธิภาพโดยไม่ต้องบันทึกลงเครื่องก่อน วิธีนี้เหมาะอย่างยิ่งสำหรับแอปพลิเคชันสมัยใหม่ที่ทำงานกับการจัดเก็บบนคลาวด์, ไฟล์ระยะไกล, หรือสภาพแวดล้อมที่มีหน่วยความจำจำกัด

ในคู่มือฉบับครอบคลุมนี้ คุณจะได้เรียนรู้วิธี compare word documents java ด้วย streams, จัดการกับข้อผิดพลาดทั่วไป, และเพิ่มประสิทธิภาพการทำงานสำหรับแอปพลิเคชันการผลิต เมื่อจบคุณจะมีระบบเปรียบเทียบเอกสารที่แข็งแรง ทั้งมีประสิทธิภาพและสามารถขยายได้

คำตอบอย่างรวดเร็ว

  • ไลบรารีที่ใช้คืออะไร? GroupDocs.Comparison for Java
  • สามารถเปรียบเทียบเอกสารโดยไม่บันทึกลงดิสก์ได้หรือไม่? ใช่, ผ่าน streams
  • ต้องการเวอร์ชัน Java ใด? JDK 8+ (แนะนำ Java 11+)
  • ต้องการไลเซนส์สำหรับการผลิตหรือไม่? ใช่, จำเป็นต้องมีไลเซนส์เต็มหรือไลเซนส์ชั่วคราว
  • สามารถเปรียบเทียบรูปแบบอื่นได้หรือไม่? แน่นอน – PDF, Excel, PowerPoint, เป็นต้น

compare word documents java คืออะไร?

การเปรียบเทียบเอกสาร Word ใน Java หมายถึงการตรวจจับการเพิ่ม, การลบ, และการเปลี่ยนแปลงรูปแบบระหว่างไฟล์ .docx (หรือ .doc) สองไฟล์หรือมากกว่าโดยโปรแกรม การใช้ streams ทำให้การเปรียบเทียบเกิดขึ้นในหน่วยความจำ ซึ่งลดภาระ I/O และเพิ่มความสามารถในการขยาย

ทำไมต้องใช้การเปรียบเทียบแบบ stream‑based?

  • Memory Efficiency – ไม่จำเป็นต้องโหลดไฟล์ทั้งหมดเข้าสู่ RAM.
  • Remote File Support – ทำงานโดยตรงกับเอกสารที่จัดเก็บบนคลาวด์หรือฐานข้อมูล.
  • Security – กำจัดไฟล์ชั่วคราวบนดิสก์ ลดความเสี่ยงจากการเปิดเผยข้อมูล.
  • Scalability – จัดการการเปรียบเทียบพร้อมกันหลายรายการด้วยการใช้ทรัพยากรต่ำ

ข้อกำหนดเบื้องต้นและการตั้งค่าสภาพแวดล้อม

ก่อนที่จะดำเนินการ java stream document comparison, ตรวจสอบให้แน่ใจว่าสภาพแวดล้อมการพัฒนาของคุณตรงตามข้อกำหนดต่อไปนี้:

ขึ้นอยู่กับและเวอร์ชันที่ต้องการ

  • GroupDocs.Comparison for Java version 25.2 หรือใหม่กว่า (แนะนำให้ใช้เวอร์ชันล่าสุด).
  • Java Development Kit (JDK) version 8 หรือสูงกว่า (แนะนำ Java 11+)

การตั้งค่าสภาพแวดล้อมการพัฒนา

  • IDE: IntelliJ IDEA, Eclipse หรือ VS Code พร้อมส่วนขยาย Java.
  • Build Tool: Maven หรือ Gradle สำหรับการจัดการ dependencies.
  • Memory: อย่างน้อย 2 GB RAM เพื่อประสบการณ์การพัฒนาที่ราบรื่น.

ความรู้เบื้องต้นที่จำเป็น

  • การเขียนโปรแกรม Java พื้นฐาน (streams และ try‑with‑resources).
  • ความคุ้นเคยกับ Maven.
  • ความเข้าใจเกี่ยวกับ file I/O ใน Java.

เคล็ดลับ: หากคุณใหม่กับ Java streams ให้ใช้เวลาสักสองสามนาทีทบทวนแนวคิด – จะทำให้ตรรกะการเปรียบเทียบชัดเจนขึ้น

การตั้งค่าและกำหนดค่าโครงการ

การตั้งค่า GroupDocs.Comparison for Java นั้นง่ายดาย แต่การกำหนดค่าที่ถูกต้องตั้งแต่แรกจะช่วยลดปัญหาในภายหลัง

การกำหนดค่า Maven

Add these configurations to your pom.xml file for proper dependency management:

<repositories>
   <repository>
      <id>repository.groupdocs.com</id>
      <name>GroupDocs Repository</name>
      <url>https://releases.groupdocs.com/comparison/java/</url>
   </repository>
</repositories>
<dependencies>
   <dependency>
      <groupId>com.groupdocs</groupId>
      <artifactId>groupdocs-comparison</artifactId>
      <version>25.2</version>
   </dependency>
</dependencies>

หมายเหตุสำคัญ: ควรใช้เวอร์ชันเสถียรล่าสุดเสมอเพื่อรับการอัปเดตด้านความปลอดภัยและประสิทธิภาพ ตรวจสอบหน้าการปล่อยของ GroupDocs สำหรับอัปเดต

ตัวเลือกการกำหนดค่าไลเซนส์

สำหรับฟังก์ชัน compare word documents java, คุณมีตัวเลือกไลเซนส์หลายแบบ:

  1. Free Trial – เหมาะสำหรับการประเมินและการทดสอบขนาดเล็ก.
  2. Temporary License – เหมาะสำหรับขั้นตอนการพัฒนาและโครงการ proof‑of‑concept.
  3. Full License – จำเป็นสำหรับการใช้งานในสภาพแวดล้อมการผลิต.

เคล็ดลับการพัฒนา: เริ่มต้นด้วย free trial เพื่อทำความคุ้นเคยกับ API แล้วอัปเกรดเป็น temporary license เพื่อการพัฒนาที่ต่อเนื่อง

การนำไปใช้หลัก: การเปรียบเทียบเอกสารแบบ Stream‑Based

ต่อไปเป็นส่วนที่น่าตื่นเต้น—การนำ วิธีเปรียบเทียบเอกสารใน java ด้วย streams ไปใช้ วิธีนี้มีพลังเป็นพิเศษเพราะจัดการเอกสารได้อย่างมีประสิทธิภาพโดยไม่ต้องใช้การจัดเก็บไฟล์ในเครื่อง

การนำเข้าและการตั้งค่าที่จำเป็น

First, import the necessary classes for your java document comparison implementation:

import com.groupdocs.comparison.Comparer;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;

ตัวอย่างการนำไปใช้แบบเต็ม

Here's the core implementation for stream‑based document comparison:

class CompareDocumentsFromStreamFeature {
    public static void run() throws Exception {
        String outputFileName = "YOUR_OUTPUT_DIRECTORY/CompareDocumentsFromStream_result.docx";

        try (InputStream sourceStream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/SOURCE_WORD.docx");
             InputStream targetStream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/TARGET1_WORD.docx");
             OutputStream resultStream = new FileOutputStream(outputFileName)) {
              
            // Initialize the Comparer with the source document stream
            try (Comparer comparer = new Comparer(sourceStream)) {
                comparer.add(targetStream);
                 
                // Perform comparison and output results to a stream
                comparer.compare(resultStream);
            }
        }
    }
}

ทำความเข้าใจการนำไปใช้

  • Source Stream ManagementsourceStream แสดงถึงเอกสารฐาน (“ต้นฉบับ”).
  • Target Stream Additioncomparer.add(targetStream) ให้คุณเปรียบเทียบหลายเอกสารกับแหล่งข้อมูล.
  • Result Stream Output – ผลลัพธ์การเปรียบเทียบจะถูกเขียนโดยตรงไปยัง resultStream, ทำให้คุณมีความยืดหยุ่นในการบันทึก, ส่ง, หรือประมวลผลต่อ.
  • Resource Management – รูปแบบ try‑with‑resources รับประกันว่าทุก stream จะถูกปิด, ป้องกันการรั่วของหน่วยความจำ—ปัญหาที่พบบ่อยในการนำ java document comparison ไปใช้.

การกำหนดค่าและการปรับแต่งขั้นสูง

แม้ว่าการนำไปใช้พื้นฐานจะทำงานได้ดี, java stream document comparison จะมีพลังมากขึ้นเมื่อคุณปรับแต่งพฤติกรรมการเปรียบเทียบ

การตั้งค่าความละเอียดของการเปรียบเทียบ

You can fine‑tune how sensitive the comparison should be:

// Example of configuring comparison options (pseudo-code for concept)
CompareOptions options = new CompareOptions();
options.setIgnoreFormatting(true);  // Focus on content changes
options.setIgnoreWhitespace(true);  // Ignore spacing differences

เมื่อใช้: ปรับความละเอียดตามกรณีการใช้งานของคุณ สำหรับเอกสารทางกฎหมายอาจต้องการความละเอียดสูงสุด สำหรับการแก้ไขร่วมกันอาจละเว้นการเปลี่ยนแปลงรูปแบบเล็กน้อย

การจัดการหลายรูปแบบเอกสาร

GroupDocs.Comparison supports many formats beyond Word:

  • Word: .docx, .doc
  • PDF: .pdf
  • Excel: .xlsx, .xls
  • PowerPoint: .pptx, .ppt

วิธีการแบบ stream‑based เดียวกันทำงานได้กับทุกรูปแบบที่รองรับ—เพียงเปลี่ยนประเภทไฟล์อินพุตของคุณ

ปัญหาที่พบบ่อยและวิธีแก้

แม้แต่ผู้พัฒนาที่มีประสบการณ์ก็อาจเจอปัญหาเมื่อทำ java document comparison นี่คือปัญหาที่พบบ่อยที่สุดและวิธีแก้ของพวกมัน:

ปัญหา 1: ปัญหาตำแหน่งของ Stream

Problem: Streams ถูกใช้จนหมดระหว่างการเปรียบเทียบ ทำให้เกิดข้อผิดพลาดหากนำกลับมาใช้ใหม่.
Solution: สร้าง stream ใหม่สำหรับแต่ละการดำเนินการเปรียบเทียบ อย่าใช้ stream ซ้ำ.

ปัญหา 2: การรั่วของหน่วยความจำ

Problem: ลืมปิด stream อย่างถูกต้องทำให้เกิดปัญหาหน่วยความจำ.
Solution: ใช้บล็อก try‑with‑resources เสมอ ตามที่แสดงในตัวอย่างของเรา.

ปัญหา 3: ปัญหาเส้นทางไฟล์

Problem: เส้นทางไฟล์ไม่ถูกต้องทำให้เกิด FileNotFoundException.
Solution: ใช้เส้นทางแบบ absolute ระหว่างการพัฒนาและการจัดการการกำหนดค่าที่เหมาะสมในสภาพแวดล้อมการผลิต.

ปัญหา 4: ประสิทธิภาพของเอกสารขนาดใหญ่

Problem: การเปรียบเทียบเอกสารขนาดใหญ่มาก (50 MB +) อาจทำให้เกิด timeout.
Solution: ใช้การติดตามความคืบหน้าและพิจารณาแบ่งเอกสารขนาดใหญ่เป็นส่วนย่อย.

เคล็ดลับการดีบัก: เพิ่มการบันทึกล็อกรอบการทำงานของ stream เพื่อเฝ้าติดตามการใช้ทรัพยากรและระบุคอขวดได้อย่างรวดเร็ว

การเพิ่มประสิทธิภาพสำหรับการผลิต

เมื่อเปิดใช้งานฟังก์ชัน compare word documents java ในการผลิต ประสิทธิภาพเป็นสิ่งสำคัญ นี่คือวิธีเพิ่มประสิทธิภาพ:

แนวทางปฏิบัติที่ดีที่สุดในการจัดการหน่วยความจำ

  1. Stream Buffer Sizes – ปรับขนาดบัฟเฟอร์ตามขนาดเอกสารทั่วไป.
  2. Garbage Collection – เฝ้าติดตามรูปแบบ GC เมื่อประมวลผลเอกสารขนาดใหญ่.
  3. Connection Pooling – หากเปรียบเทียบเอกสารจากแหล่งระยะไกล ให้ใช้ connection pooling.

Concurrent Processing Considerations

// Example pattern for concurrent document comparison
ExecutorService executor = Executors.newFixedThreadPool(4);
// Process multiple comparisons concurrently

เคล็ดลับประสิทธิภาพ: ทดสอบด้วยขนาดเอกสารและจำนวนผู้ใช้พร้อมกันที่เป็นจริงเพื่อกำหนดค่ามาตรฐาน

กลยุทธ์การแคช

  • Document Fingerprinting – สร้างแฮชเพื่อระบุเอกสารที่ไม่ได้เปลี่ยนแปลง.
  • Result Caching – เก็บผลการเปรียบเทียบสำหรับคู่เอกสารที่เหมือนกัน.
  • Partial Caching – แคชผลลัพธ์การประมวลผลระหว่างขั้นตอนสำหรับเอกสารขนาดใหญ่.

แนวทางปฏิบัติที่ดีที่สุดสำหรับการรวมระบบ

การรวม java document comparison เข้ากับแอปพลิเคชันที่มีอยู่สำเร็จต้องปฏิบัติตามแนวทางปฏิบัติที่ดีที่สุดต่อไปนี้:

Error Handling Strategy

try {
    // Document comparison logic
} catch (FileNotFoundException e) {
    // Handle missing files gracefully
    log.error("Document not found: {}", e.getMessage());
} catch (IOException e) {
    // Handle stream processing errors
    log.error("Stream processing failed: {}", e.getMessage());
} catch (Exception e) {
    // Handle unexpected errors
    log.error("Unexpected error during comparison: {}", e.getMessage());
}

การเฝ้าติดตามและบันทึกล็อก

Track key metrics:

  • Processing Time – เฝ้าติดตามระยะเวลาเพื่อวิเคราะห์แนวโน้มประสิทธิภาพ.
  • Memory Usage – ติดตามการใช้ heap ระหว่างการประมวลผลเอกสารขนาดใหญ่.
  • Error Rates – เฝ้าติดตามรูปแบบความล้มเหลวเพื่อระบุปัญหาระบบ.
  • Throughput – วัดจำนวนเอกสารที่ประมวลผลต่อ นาที/ชั่วโมง.

การจัดการการกำหนดค่า

Use externalized configuration for different environments:

  • Development – บันทึกล็อกละเอียด, timeout สั้น.
  • Testing – บันทึกล็อกระดับกลาง, timeout สมจริง.
  • Production – บันทึกล็อกที่จำเป็นเท่านั้น, timeout ที่ปรับให้เหมาะสม.

การใช้งานจริงและกรณีศึกษา

Java stream document comparison แก้ปัญหาธุรกิจหลายอย่าง:

การแก้ไขเอกสารร่วมกัน

หลายสมาชิกทีมแก้ไขเอกสารร่วมกัน → เปรียบเทียบเวอร์ชันที่อัปโหลดกับเวอร์ชันปัจจุบันเพื่อไฮไลท์การเปลี่ยนแปลง.

การตรวจสอบเอกสารทางกฎหมาย

บริษัทกฎหมายเปรียบเทียบเวอร์ชันสัญญาและการแก้ไข → การเปรียบเทียบที่มีความละเอียดสูงจะจับการเปลี่ยนแปลงทุกอย่าง.

ระบบจัดการเนื้อหา

แพลตฟอร์ม CMS ติดตามการแก้ไขเอกสาร → การเปรียบเทียบอัตโนมัติเมื่อผู้ใช้อัปโหลดเวอร์ชันใหม่.

การเวอร์ชันเอกสาร API

เปรียบเทียบเอกสาร API ระหว่างรุ่น → บันทึกการเปลี่ยนแปลงอัตโนมัติสำหรับผู้ใช้ API.

การแก้ไขปัญหาที่พบบ่อย

ClassNotFoundException หรือ NoClassDefFoundError

Cause: ไฟล์ JAR ของ GroupDocs.Comparison ขาดหาย.
Solution: ตรวจสอบให้แน่ใจว่า dependencies ของ Maven ถูกแก้ไขอย่างถูกต้องและไฟล์ JAR อยู่ใน classpath.

OutOfMemoryError ระหว่างการเปรียบเทียบเอกสารขนาดใหญ่

Cause: พื้นที่ heap ไม่เพียงพอ.
Solution: เพิ่มขนาด heap ของ JVM ด้วย -Xmx หรือทำการแบ่งเอกสารเป็นชิ้นส่วน.

ผลลัพธ์การเปรียบเทียบดูไม่ถูกต้อง

Cause: รูปแบบหรือการเข้ารหัสที่แตกต่าง.
Solution: ตรวจสอบรูปแบบที่รองรับและพิจารณาการเตรียมข้อมูลล่วงหน้าเพื่อทำให้รูปแบบเป็นมาตรฐาน.

ประสิทธิภาพช้าเมื่อเอกสารถูกเก็บบนเครือข่าย

Cause: ความหน่วงของเครือข่ายส่งผลต่อการอ่าน stream.
Solution: ใช้การแคชในเครื่องหรือรูปแบบการประมวลผลแบบอะซิงโครนัส.

ขั้นตอนต่อไปและฟีเจอร์ขั้นสูง

คุณได้เชี่ยวชาญพื้นฐานของ java document comparison ด้วย streams แล้ว นี่คือพื้นที่ที่คุณสามารถสำรวจต่อไป:

ฟีเจอร์การเปรียบเทียบขั้นสูง

  • กฎการตรวจจับการเปลี่ยนแปลงแบบกำหนดเอง.
  • การสนับสนุนหลายรูปแบบสำหรับเอกสารผสม.
  • การประมวลผลเป็นชุดสำหรับชุดเอกสารขนาดใหญ่.

โอกาสการรวมระบบ

  • เปิดให้บริการการเปรียบเทียบผ่าน REST APIs.
  • ปรับใช้เป็น microservice เฉพาะ.
  • ฝังในกระบวนการอนุมัติเอกสาร.

การเพิ่มประสิทธิภาพ

  • การประมวลผลแบบขนานสำหรับชุดเอกสารขนาดใหญ่.
  • การรวมการจัดเก็บบนคลาวด์เพื่อการเข้าถึงที่ต่อเนื่อง.
  • การจำแนกการเปลี่ยนแปลงโดยใช้ Machine‑learning.

สรุป

คุณได้เรียนรู้วิธีการนำ compare word documents java ที่มีประสิทธิภาพโดยใช้ GroupDocs.Comparison กับ streams อย่างสำเร็จ วิธีนี้ให้การประมวลผลที่เป็นมิตรต่อหน่วยความจำ, ความยืดหยุ่นสำหรับไฟล์ระยะไกล, และความสามารถในการขยายสำหรับงานในสภาพแวดล้อมการผลิต

Key takeaways:

  • การเปรียบเทียบแบบ stream‑based ลดภาระ I/O และเพิ่มความปลอดภัย.
  • การจัดการทรัพยากรที่เหมาะสมป้องกันการรั่วของหน่วยความจำ.
  • ตัวเลือกการกำหนดค่าช่วยให้คุณปรับความละเอียดตามความต้องการ.
  • การเฝ้าติดตาม, การจัดการข้อผิดพลาด, และการแคชเป็นสิ่งสำคัญสำหรับการพร้อมใช้งานในการผลิต.

เริ่มต้นด้วยตัวอย่างพื้นฐานที่ให้ไว้, จากนั้นพัฒนาไปสู่ฟีเจอร์ขั้นสูงที่ตรงกับความต้องการของโครงการของคุณ.

คำถามที่พบบ่อย

Q: ขนาดเอกสารสูงสุดที่ GroupDocs.Comparison สามารถจัดการได้คือเท่าไหร่?
A: แม้จะไม่มีขีดจำกัดที่แน่นอน, เอกสารที่ใหญ่กว่า 100 MB อาจต้องการการปรับแต่งหน่วยความจำ. ใช้ streaming และปรับการตั้งค่า heap ของ JVM ให้เหมาะสม.

Q: ฉันสามารถเปรียบเทียบเอกสารที่มีการป้องกันด้วยรหัสผ่านโดยใช้ streams ได้หรือไม่?
A: ได้, แต่คุณต้องจัดการการถอดรหัสก่อนส่ง stream ไปยัง Comparer. GroupDocs.Comparison รองรับไฟล์ที่มีการป้องกันด้วยรหัสผ่าน.

Q: ฉันจะจัดการกับรูปแบบเอกสารที่แตกต่างกันในการเปรียบเทียบเดียวกันอย่างไร?
A: GroupDocs.Comparison ตรวจจับรูปแบบโดยอัตโนมัติ, แต่การเปรียบเทียบระหว่างประเภทที่ต่างกัน (เช่น Word กับ PDF) อาจมีข้อจำกัด. ควรแปลงเป็นรูปแบบทั่วไปก่อน.

Q: สามารถรับข้อมูลการเปลี่ยนแปลงอย่างละเอียดนอกเหนือจากผลลัพธ์การเปรียบเทียบได้หรือไม่?
A: ใช่, วัตถุ CompareResult ให้ข้อมูลประเภทการเปลี่ยนแปลง, ตำแหน่ง, และเนื้อหาอย่างละเอียด. สำรวจ API ของมันเพื่อรับข้อมูลเชิงลึก.

Q: ค่าไลเซนส์สำหรับการใช้งานในสภาพแวดล้อมการผลิตคือเท่าไหร่?
A: ค่าไลเซนส์แตกต่างตามการปรับใช้และปริมาณการใช้งาน. ตรวจสอบหน้าราคา GroupDocs และพิจารณาใช้ temporary license สำหรับการพัฒนา.

Q: ฉันสามารถปรับแต่งลักษณะของผลลัพธ์การเปรียบเทียบได้หรือไม่?
A: แน่นอน. GroupDocs.Comparison มีตัวเลือกสำหรับการไฮไลท์การเปลี่ยนแปลง, สี, และรูปแบบผลลัพธ์ให้ตรงกับ UI ของคุณ.

Q: ฉันจะเพิ่มประสิทธิภาพสำหรับการเปรียบเทียบที่ใหญ่มากหรือหลายการเปรียบเทียบพร้อมกันได้อย่างไร?
A: ใช้ heap ของ JVM ที่ใหญ่ขึ้น, ปรับบัฟเฟอร์ของ stream, เปิดใช้งาน result caching, และประมวลผลการเปรียบเทียบแบบขนานโดยใช้ executor service.

แหล่งข้อมูลเพิ่มเติม


Last Updated: 2025-12-21
Tested With: GroupDocs.Comparison 25.2 for Java
Author: GroupDocs