| categories |
|
||||
|---|---|---|---|---|---|
| date | 2025-12-31 | ||||
| description | เรียนรู้วิธีการเปรียบเทียบไฟล์ Excel และเอกสารอื่น ๆ ด้วย GroupDocs.Comparison สำหรับ Java รวมถึงตัวอย่างการเปรียบเทียบเอกสาร PDF ด้วย Java, การเปรียบเทียบเอกสารขนาดใหญ่ด้วย Java, และการเปรียบเทียบ PDF ที่เข้ารหัสด้วย Java | ||||
| keywords | java compare excel files, compare pdf documents java, java compare large documents, java compare encrypted pdf, GroupDocs.Comparison Java | ||||
| lastmod | 2025-12-31 | ||||
| linktitle | Java Compare Excel Files Guide | ||||
| tags |
|
||||
| title | Java เปรียบเทียบไฟล์ Excel ด้วย Document Comparison API | ||||
| type | docs | ||||
| url | /th/java/basic-comparison/mastering-document-comparison-java-groupdocs/ | ||||
| weight | 1 |
เคยใช้เวลาหลายชั่วโมงเปรียบเทียบเอกสารด้วยตนเอง ทีละบรรทัดหรือไม่? ไม่ว่าจะเป็นการติดตามการแก้ไขสัญญา, การตรวจสอบเอกสารโค้ด, หรือ java compare excel files สำหรับรายงานการเงิน, การเปรียบเทียบเอกสารด้วยมือใช้เวลามากและเสี่ยงต่อข้อผิดพลาด
GroupDocs.Comparison for Java API จัดการปัญหานี้โดยอัตโนมัติด้วยความแม่นยำระดับศัลยกรรม คุณสามารถตรวจจับการเปลี่ยนแปลง, เพิกเฉยส่วนที่ไม่สำคัญเช่นส่วนหัวและส่วนท้าย, ปรับสไตล์การไฮไลท์, และสร้างรายงานการเปรียบเทียบระดับมืออาชีพ—ทั้งหมดนี้ทำผ่านโค้ด
ในคู่ฉบับเต็มนี้ คุณจะได้เรียนรู้วิธีนำ API การเปรียบเทียบเอกสารด้วย Java ไปใช้จริงที่ช่วยประหยัดชั่วโมงของงานมือและรับประกันว่าไม่มีอะไรพลาด เราจะครอบคลุมตั้งแต่การตั้งค่าเบื้องต้นจนถึงเทคนิคการปรับแต่งขั้นสูงที่ใช้ในสภาพแวดล้อมการผลิตจริง
- GroupDocs สามารถเปรียบเทียบไฟล์ Excel ใน Java ได้หรือไม่? ได้, เพียงโหลดไฟล์
.xlsxด้วยคลาสComparer - จะเพิกเฉยส่วนหัว/ส่วนท้ายได้อย่างไร? ตั้งค่า
setHeaderFootersComparison(false)ในCompareOptions - ไฟล์ PDF ขนาดใหญ่ทำอย่างไร? เพิ่มขนาด heap ของ JVM และเปิดใช้งานการเพิ่มประสิทธิภาพหน่วยความจำ
- เปรียบเทียบ PDF ที่มีรหัสผ่านได้หรือไม่? ให้รหัสผ่านเมื่อสร้าง
Comparer - มีวิธีเปลี่ยนสีไฮไลท์หรือไม่? ใช้
StyleSettingsสำหรับรายการที่เพิ่ม, ลบ, และแก้ไข
java compare excel files หมายถึงการตรวจจับความแตกต่างระหว่างเวิร์กบุ๊ค Excel สองไฟล์โดยใช้โค้ด Java. API ของ GroupDocs.Comparison จะอ่านเนื้อหาในสเปรดชีต, ประเมินการเปลี่ยนแปลงระดับเซลล์, และสร้างรายงาน diff ที่ไฮไลท์การเพิ่ม, การลบ, และการแก้ไข
การเปรียบเทียบเอกสารด้วยมือไม่เพียงแต่น่าเบื่อ—ยังเสี่ยงต่อความผิดพลาดด้วย การศึกษาแสดงว่ามนุษย์พลาดการเปลี่ยนแปลงสำคัญประมาณ 20 % เมื่อเปรียบเทียบเอกสารด้วยตนเอง นี่คือเหตุผลที่นักพัฒนาหันไปใช้โซลูชันแบบโปรแกรม:
ปัญหาที่พบบ่อย:
- เสียเวลา: นักพัฒนาระดับสูงใช้เวลา 3–4 ชั่วโมงต่อสัปดาห์ในการตรวจสอบเอกสาร
- ข้อผิดพลาดของมนุษย์: พลาดการเปลี่ยนแปลงสำคัญในสัญญากฎหมายหรือสเปคเทคนิค
- มาตรฐานไม่สม่ำเสมอ: สมาชิกทีมต่างคนต่างไฮไลท์การเปลี่ยนแปลงแตกต่างกัน
- ปัญหาขนาด: การเปรียบเทียบเอกสารหลายร้อยไฟล์ด้วยมือเป็นไปไม่ได้
API ให้ผลลัพธ์:
- ความแม่นยำ 99.9 %: ตรวจจับการเปลี่ยนแปลงระดับอักขระทั้งหมดโดยอัตโนมัติ
- ความเร็ว: เปรียบเทียบเอกสาร 100+ หน้าในเวลาไม่ถึง 30 วินาที
- ความสม่ำเสมอ: ไฮไลท์และรายงานมาตรฐานเดียวกันสำหรับทุกการเปรียบเทียบ
- การบูรณาการ: ผสานเข้ากับ workflow ของ Java และ pipeline CI/CD ได้อย่างราบรื่น
API การเปรียบเทียบเอกสารด้วยนี้:
- การตรวจสอบเอกสารกฎหมาย – ติดตามการเปลี่ยนแปลงและการแก้ไขสัญญาโดยอัตโนมัติ
- เอกสารเทคนิค – ตรวจสอบการอัปเดต API documentation และ changelog
- การจัดการเนื้อหา – เปรียบเทียบบล็อกโพสต์, สื่อการตลาด, หรือคู่มือผู้ใช้
- การตรวจสอบความสอดคล้อง – ยืนยันว่าเอกสารนโยบายเป็นไปตามข้อกำหนดกฎระเบียบ
- การควบคุมเวอร์ชัน – เสริม Git ด้วย diff ของเอกสารที่มนุษย์อ่านได้
GroupDocs.Comparison for Java รองรับกว่า 50 ฟอร์แมตไฟล์พร้อมใช้งาน:
ฟอร์แมตยอดนิยม:
- เอกสาร: Word (DOCX, DOC), PDF, RTF, ODT
- สเปรดชีต: Excel (XLSX, XLS), CSV, ODS
- พรีเซนเทชัน: PowerPoint (PPTX, PPT), ODP
- ไฟล์ข้อความ: TXT, HTML, XML, MD
- รูปภาพ: PNG, JPEG, BMP, GIF (เปรียบเทียบภาพ)
ฟีเจอร์ขั้นสูง:
- เปรียบเทียบเอกสารที่มีรหัสผ่าน
- ตรวจจับและเปรียบเทียบข้อความหลายภาษา
- ตั้งค่าความไวเฉพาะสำหรับประเภทเอกสารต่าง ๆ
- ประมวลผลเป็นชุดสำหรับคู่ไฟล์หลายคู่
- ตัวเลือกการปรับใช้บนคลาวด์และ on‑premise
ก่อนเริ่มเขียนโค้ด ให้ตรวจสอบว่าสภาพแวดล้อมการพัฒนาตรงตามข้อกำหนดต่อไปนี้:
- Java Development Kit (JDK): เวอร์ชัน 8 หรือสูงกว่า (แนะนำ JDK 11+)
- เครื่องมือสร้าง: Maven 3.6+ หรือ Gradle 6.0+
- หน่วยความจำ: RAM ขั้นต่ำ 4 GB สำหรับการประมวลผลเอกสารขนาดใหญ่
- พื้นที่จัดเก็บ: ว่าง 500 MB+ สำหรับไฟล์เปรียบเทียบชั่วคราว
เพิ่ม repository และ dependency ของ GroupDocs ลงใน pom.xml ของคุณ การตั้งค่านี้ทำให้คุณดึงไลบรารีจากช่องทางอย่างเป็นทางการ:
<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 Downloads – ผลลัพธ์จะมีลายน้ำ
- License ชั่วคราว: รับสิทธิ์เต็ม 30 วันผ่าน GroupDocs Support
สำหรับการใช้งานจริง:
- License เต็ม: ซื้อผ่าน GroupDocs Purchase เพื่อใช้แบบไม่จำกัดในเชิงพาณิชย์
เมื่อคุณมีไฟล์ license แล้ว ให้เริ่มต้นดังนี้:
// License initialization - do this once at application startup
com.groupdocs.comparison.License license = new com.groupdocs.comparison.License();
license.setLicense("path/to/your/license/file.lic");เคล็ดลับ: เก็บไฟล์ license ไว้ในโฟลเดอร์ resources ของแอปพลิเคชันและโหลดด้วย getClass().getResourceAsStream() เพื่อความพกพาข้ามสภาพแวดล้อมที่ดียิ่งขึ้น
เหตุผลที่สำคัญ: ส่วนหัวและส่วนท้ายมักมีข้อมูลไดนามิก เช่น เวลา, หมายเลขหน้า, หรือข้อมูลผู้เขียน ที่เปลี่ยนแปลงระหว่างเวอร์ชันแต่ไม่เกี่ยวกับการเปรียบเทียบเนื้อหา การเพิกเฉยส่วนเหล่านี้ช่วยลดสัญญาณรบกวนและโฟกัสที่การเปลี่ยนแปลงที่มีความหมาย
สถานการณ์จริง: คุณกำลังเปรียบเทียบเวอร์ชันสัญญาซึ่งแต่ละฉบับมีตราประทับวันที่ต่างกันในส่วนท้าย แต่คุณสนใจเฉพาะการแก้ไขข้อกำหนดในเนื้อหาหลักเท่านั้น
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import java.io.FileOutputStream;
public class IgnoreHeaderFooterExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/IgnoreHeaderFooter_result.docx";
try (OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_with_footer.docx")) {
comparer.add("YOUR_DOCUMENT_DIRECTORY/target_with_footer.docx");
// Set comparison options to ignore headers and footers
CompareOptions compareOptions = new CompareOptions.Builder()
.setHeaderFootersComparison(false)
.build();
final Path resultPath = comparer.compare(resultStream, new SaveOptions(), compareOptions);
}
}
}ประโยชน์หลัก:
- ผลลัพธ์ที่ชัดเจน – เน้นการเปลี่ยนแปลงของเนื้อหาแทนความแตกต่างของรูปแบบ
- ลด False Positives – กำจัดการแจ้งเตือนการเปลี่ยนแปลงที่ไม่เกี่ยวข้อง
- ประสิทธิภาพดีขึ้น – ข้ามขั้นตอนการเปรียบเทียบที่ไม่จำเป็น
บริบททางธุรกิจ: เมื่อสร้างรายงานการเปรียบเทียบเพื่อพิมพ์หรือแจกจ่ายเป็น PDF การควบคุมขนาดกระดาษทำให้รูปแบบคงที่บนแพลตฟอร์มและเครื่องพิมพ์ต่าง ๆ
กรณีใช้งาน: ทีมกฎหมายมักต้องการรายงานเปรียบเทียบในรูปแบบเฉพาะสำหรับการยื่นต่อศาลหรือการนำเสนอให้ลูกค้า
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import com.groupdocs.comparison.options.enums.PaperSize;
public class SetOutputPaperSizeExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/SetOutputPaperSize_result.docx";
try (OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_word.docx")) {
comparer.add("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");
// Set the paper size to A6
CompareOptions compareOptions = new CompareOptions.Builder()
.setPaperSize(PaperSize.A6)
.build();
final Path resultPath = comparer.compare(resultStream, compareOptions);
}
}
}ขนาดกระดาษที่รองรับ: A0‑A10, Letter, Legal, Tabloid, และขนาดกำหนดเอง เลือกตามความต้องการของผู้รับ – A4 สำหรับลูกค้าในยุโรป, Letter สำหรับทีมในสหรัฐอเมริกา
ความท้าทาย: ประเภทเอกสารต่าง ๆ ต้องการระดับการตรวจจับการเปลี่ยนแปลงที่แตกต่างกัน สัญญากฎหมายต้องการตรวจจับทุกคอมม่า ส่วนสื่อการตลาดอาจสนใจแค่การเปลี่ยนแปลงที่สำคัญ
วิธีทำงานของ Sensitivity: สเกลความไวอยู่ระหว่าง 0‑100, ค่าที่สูงกว่าจะตรวจจับการเปลี่ยนแปลงที่ละเอียดมากขึ้น:
- 0‑25: การเปลี่ยนแปลงใหญ่เท่านั้น (เพิ่ม/ลบย่อหน้า)
- 26‑50: การเปลี่ยนแปลงระดับกลาง (แก้ไขประโยค)
- 51‑75: การเปลี่ยนแปลงละเอียด (แก้ไขคำ)
- 76‑100: การเปลี่ยนแปลงระดับอักขระ
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
public class AdjustComparisonSensitivityExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/AdjustComparisonSensitivity_result.docx";
try (OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source_word.docx")) {
comparer.add("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");
// Set sensitivity to 100 for maximum detail
CompareOptions compareOptions = new CompareOptions.Builder()
.setSensitivityOfComparison(100)
.build();
final Path resultPath = comparer.compare(resultStream, compareOptions);
}
}
}แนวทางปฏิบัติสำหรับการตั้งค่า Sensitivity:
- เอกสารกฎหมาย: ใช้ 90‑100 เพื่อการตรวจจับครบถ้วน
- เนื้อหาการตลาด: ใช้ 40‑60 เพื่อโฟกัสที่การเปลี่ยนแปลงสำคัญ
- สเปคเทคนิค: ใช้ 70‑80 เพื่อจับรายละเอียดสำคัญพร้อมกรองการเปลี่ยนแปลงรูปแบบเล็กน้อย
เหตุผลที่สไตล์สำคัญ: ไฮไลท์ค่าเริ่มต้นอาจไม่สอดคล้องกับมาตรฐานการตรวจสอบของทีมหรือแบรนด์ขององค์กร สไตล์ที่ปรับแต่งช่วยให้เอกสารอ่านง่ายและทำให้ผู้มีส่วนได้ส่วนเสียระบุประเภทการเปลี่ยนแปลงได้เร็วขึ้น
แนวทางระดับมืออาชีพ: ใช้จิตวิทยาสี – สีแดงสำหรับการลบสร้างความเร่งด่วน, สีเขียวสำหรับการเพิ่มบ่งบอกถึงการพัฒนา, สีฟ้าสำหรับการแก้ไขบ่งบอกว่าต้องตรวจสอบ
import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.CompareOptions;
import com.groupdocs.comparison.options.save.SaveOptions;
import com.groupdocs.comparison.options.style.StyleSettings;
import java.awt.Color;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class CustomizeChangesStylesStreamExample {
public static void main(String[] args) throws Exception {
String outputFileName = "YOUR_OUTPUT_DIRECTORY/CustomizeChangesStylesStream_result.docx";
try (InputStream sourceFile = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/source_word.docx");
InputStream targetFile = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/target1_word.docx");
OutputStream resultStream = new FileOutputStream(outputFileName);
Comparer comparer = new Comparer(sourceFile)) {
comparer.add(targetFile);
// Customize change styles for professional appearance
StyleSettings insertedStyle = new StyleSettings();
insertedStyle.setHighlightColor(Color.GREEN); // Green for additions
StyleSettings deletedStyle = new StyleSettings();
deletedStyle.setHighlightColor(Color.RED); // Red for deletions
StyleSettings changedStyle = new StyleSettings();
changedStyle.setHighlightColor(Color.BLUE); // Blue for modifications
CompareOptions compareOptions = new CompareOptions.Builder()
.setInsertedItemStyle(insertedStyle)
.setDeletedItemStyle(deletedStyle)
.setChangedItemStyle(changedStyle)
.build();
final Path resultPath = comparer.compare(resultStream, compareOptions);
}
}
}ตัวเลือกสไตล์ขั้นสูง (มีใน StyleSettings):
- ปรับน้ำหนัก, ขนาด, และฟอนต์
- สีพื้นหลังและความโปร่งใส
- สไตล์เส้นขอบสำหรับประเภทการเปลี่ยนแปลงต่าง ๆ
- ตัวเลือก strike‑through สำหรับเนื้อหาที่ลบ
ปัญหา: OutOfMemoryError เมื่อเปรียบเทียบเอกสารที่มีขนาดเกิน 50 MB
วิธีแก้: เพิ่มขนาด heap ของ JVM และใช้การสตรีมข้อมูล
# Increase heap size for large document processing
java -Xmx4g -XX:MaxMetaspaceSize=512m YourComparisonAppการปรับโค้ดเพื่อประสิทธิภาพ:
// Use streaming for memory efficiency
try (Comparer comparer = new Comparer(sourceStream)) {
// Process in chunks for very large documents
CompareOptions options = new CompareOptions.Builder()
.setMemoryOptimization(true) // Enable memory optimization
.build();
}ปัญหา: การเปรียบเทียบล้มเหลวกับไฟล์ที่ล็อกไว้
กลยุทธ์ป้องกัน:
// Check document accessibility before comparison
try {
Comparer comparer = new Comparer(sourceFile, "password123");
// Document loaded successfully, proceed with comparison
} catch (PasswordRequiredException ex) {
// Handle password‑protected documents
log.error("Document requires password: " + sourceFile);
} catch (CorruptedFileException ex) {
// Handle corrupted files gracefully
log.error("File corruption detected: " + sourceFile);
}ความท้าทาย: ประมวลผลคู่ไฟล์ 100+ คู่อย่างมีประสิทธิภาพ
วิธีแก้: ใช้การประมวลผลแบบขนานกับ thread pool
ExecutorService executor = Executors.newFixedThreadPool(4);
List<Future<ComparisonResult>> futures = new ArrayList<>();
for (DocumentPair pair : documentPairs) {
futures.add(executor.submit(() -> compareDocuments(pair)));
}
// Wait for all comparisons to complete
for (Future<ComparisonResult> future : futures) {
ComparisonResult result = future.get();
// Process results
}
executor.shutdown();ความท้าทายในการเปรียบเทียบ PDF:
- PDF สแกน: ใช้ OCR ก่อนเพื่อดึงข้อความ
- เลย์เอาต์ซับซ้อน: อาจต้องปรับ Sensitivity ด้วยตนเอง
- ฟอนต์ฝัง: ตรวจสอบให้ฟอนต์แสดงผลสม่ำเสมอในทุกสภาพแวดล้อม
ปัญหาในเอกสาร Word:
- Track Changes: ปิดการติดตามการเปลี่ยนแปลงก่อนทำการเปรียบเทียบ
- วัตถุฝัง: อาจไม่เปรียบเทียบได้อย่างถูกต้อง, ควรแยกและเปรียบเทียบแยกส่วน
- ความเข้ากันได้ของเวอร์ชัน: ทดสอบกับฟอร์แมต Word รุ่นต่าง ๆ
ทำความสะอาดอินพุต: ลบเมตาดาต้าและฟอร์แมตที่ไม่จำเป็นก่อนเปรียบเทียบเพื่อเพิ่มความแม่นยำและความเร็ว
// Example preprocessing workflow
public void preprocessDocument(String filePath) {
// Remove comments and tracked changes
// Standardize formatting
// Extract text‑only version for pure content comparison
}โปรไฟล์การกำหนดค่า:
public class ComparisonProfiles {
public static CompareOptions getLegalDocumentProfile() {
return new CompareOptions.Builder()
.setSensitivityOfComparison(95)
.setHeaderFootersComparison(false)
.setShowRevisions(true)
.build();
}
public static CompareOptions getMarketingContentProfile() {
return new CompareOptions.Builder()
.setSensitivityOfComparison(45)
.setIgnoreFormatting(true)
.setFocusOnContent(true)
.build();
}
}การจัดการข้อผิดพลาดอย่างแข็งแรง:
public ComparisonResult safeCompareDocuments(String source, String target) {
try {
return performComparison(source, target);
} catch (Exception ex) {
logger.error("Comparison failed for {} vs {}: {}", source, target, ex.getMessage());
return ComparisonResult.failure(ex.getMessage());
}
}นำแคชอัจฉริยะมาใช้:
- แคชผลลัพธ์การเปรียบเทียบสำหรับคู่ไฟล์ที่เหมือนกัน
- เก็บ fingerprint ของเอกสารเพื่อหลีกเลี่ยงการประมวลผลไฟล์ที่ไม่ได้เปลี่ยนแปลง
- ใช้การประมวลผลแบบอะซิงโครนัสสำหรับการเปรียบเทียบที่ไม่สำคัญต่อเวลา
@Service
public class ContractReviewService {
public void processContractRevision(String originalContract, String revisedContract) {
CompareOptions legalOptions = ComparisonProfiles.getLegalDocumentProfile();
try (Comparer comparer = new Comparer(originalContract)) {
comparer.add(revisedContract);
Path result = comparer.compare(generateOutputPath(), legalOptions);
// Send comparison report to legal team
emailService.sendComparisonReport(result, legalTeamEmails);
// Log changes for audit trail
auditService.logDocumentChanges(extractChanges(result));
}
}
}@RestController
public class DocumentComparisonController {
@PostMapping("/api/documents/compare")
public ResponseEntity<ComparisonReport> compareDocuments(
@RequestParam("source") MultipartFile source,
@RequestParam("target") MultipartFile target,
@RequestParam(value = "sensitivity", defaultValue = "75") int sensitivity) {
CompareOptions options = new CompareOptions.Builder()
.setSensitivityOfComparison(sensitivity)
.build();
ComparisonReport report = documentComparisonService.compare(source, target, options);
return ResponseEntity.ok(report);
}
}Q: สามารถเพิกเฉยส่วนหัวและส่วนท้ายระหว่างการเปรียบเทียบใน GroupDocs for Java ได้หรือไม่?
A: ได้, ใช้ setHeaderFootersComparison(false) ใน CompareOptions ซึ่งเหมาะกับหัวที่มีข้อมูลไดนามิกเช่น timestamp ที่ไม่เกี่ยวข้องกับการเปลี่ยนแปลงหลัก
Q: จะตั้งค่าขนาดกระดาษของผลลัพธ์ใน Java ด้วย GroupDocs อย่างไร?
A: ใช้ setPaperSize(PaperSize.A6) (หรือค่าคงที่อื่น) ใน CompareOptions เพื่อสร้างรายงานพร้อมพิมพ์ ขนาดที่รองรับรวมถึง A0‑A10, Letter, Legal, และ Tabloid
Q: สามารถปรับความไวของการเปรียบเทียบให้เหมาะกับประเภทเอกสารต่าง ๆ ได้หรือไม่?
A: แน่นอน. ใช้ setSensitivityOfComparison() พร้อมค่าตั้งแต่ 0‑100 ค่าที่สูงจะตรวจจับการเปลี่ยนแปลงที่ละเอียดมากขึ้น – เหมาะกับเอกสารกฎหมาย; ค่าต่ำเหมาะกับเนื้อหาการตลาด
Q: สามารถปรับสไตล์ของข้อความที่เพิ่ม, ลบ, และแก้ไขระหว่างการเปรียบเทียบได้หรือไม่?
A: ได้. สร้าง StyleSettings แบบกำหนดเองสำหรับแต่ละประเภทการเปลี่ยนแปลงและนำไปใช้ผ่าน CompareOptions คุณสามารถปรับสีไฮไลท์, ฟอนต์, เส้นขอบ, และอื่น ๆ ให้สอดคล้องกับแบรนด์ของคุณ
Q: ต้องมีข้อกำหนดเบื้องต้นอะไรบ้างเพื่อเริ่มต้นใช้ GroupDocs Comparison ใน Java?
A: ต้องมี JDK 8+ (แนะนำ JDK 11+), Maven 3.6+ หรือ Gradle 6.0+, RAM อย่างน้อย 4 GB สำหรับเอกสารขนาดใหญ่, และไลเซนส์ของ GroupDocs (มีเวอร์ชันทดลองฟรี). เพิ่ม repository และ dependency ลงในโปรเจกต์, จากนั้นเริ่มต้นไลเซนส์ที่เวลาเริ่มต้นแอปพลิเคชัน
Q: จะจัดการกับเอกสารที่มีรหัสผ่านใน GroupDocs.Comparison อย่างไร?
A: ส่งรหัสผ่านเป็นอาร์กิวเมนต์ที่สองเมื่อสร้าง Comparer: new Comparer(sourceFile, "password123"). ควรห่อการเรียกในบล็อก try‑catch เพื่อจัดการ PasswordRequiredException อย่างเหมาะสม
Q: GroupDocs.Comparison for Java รองรับฟอร์แมตไฟล์อะไรบ้าง?
A: รองรับมากกว่า 50 ฟอร์แมตรวมถึง Word (DOCX, DOC), PDF, Excel (XLSX, XLS), PowerPoint (PPTX, PPT), ไฟล์ข้อความ (TXT, HTML, XML), และรูปภาพ (PNG, JPEG) สำหรับการเปรียบเทียบภาพ API จะตรวจจับประเภทโดยอัตโนมัติ, แต่คุณสามารถระบุฟอร์แมตเพื่อเพิ่มประสิทธิภาพการประมวลผลเป็นชุดได้
อัปเดตล่าสุด: 2025-12-31
ทดสอบกับ: GroupDocs.Comparison 25.2 for Java
ผู้เขียน: GroupDocs