Skip to content

Latest commit

 

History

History
504 lines (394 loc) · 29.9 KB

File metadata and controls

504 lines (394 loc) · 29.9 KB
categories
Java Development
date 2025-12-21
description Μάθετε πώς να συγκρίνετε έγγραφα σε Java χρησιμοποιώντας το GroupDocs.Comparison API, συμπεριλαμβανομένης της σύγκρισης πολλαπλών αρχείων Java και εγγράφων με προστασία κωδικού. Οδηγός βήμα‑βήμα με κώδικα, βέλτιστες πρακτικές και αντιμετώπιση προβλημάτων.
keywords Java document comparison tutorial, GroupDocs Java API guide, compare documents in java, java compare multiple files, java compare password protected, Java file comparison library, how to compare Word documents in Java
lastmod 2025-12-21
linktitle Java Document Comparison Tutorial
tags
document-comparison
groupdocs
java-tutorial
api-integration
title Σύγκριση εγγράφων σε Java – Πλήρης Οδηγός GroupDocs API
type docs
url /el/java/basic-comparison/java-document-comparison-groupdocs-metadata-source/
weight 1

compare documents in java – GroupDocs API Complete Guide

Εισαγωγή

Έχετε βρεθεί ποτέ να συγκρίνετε χειροκίνητα δύο έγγραφα γραμμή προς γραμμή, μόνο για να χάσετε κρίσιμες διαφορές; Δεν είστε μόνοι. compare documents in java είναι μια κοινή πρόκληση, ειδικά όταν χρειάζεται να διατηρήσετε τα μεταδεδομένα, να χειριστείτε αρχεία με κωδικό πρόσβασης ή να συγκρίνετε πολλά αρχεία ταυτόχρονα.

Το θέμα είναι: οι περισσότεροι προγραμματιστές αντιμετωπίζουν δυσκολίες επειδή είτε δημιουργούν κάτι από το μηδέν (που διαρκεί αιώνια) είτε χρησιμοποιούν βασικά εργαλεία diff που αγνοούν τη μορφοποίηση, τα μεταδεδομένα και τις ρυθμίσεις ασφαλείας. Εκεί έρχεται το GroupDocs.Comparison for Java.

Σε αυτό το ολοκληρωμένο tutorial, θα ανακαλύψετε πώς να υλοποιήσετε αξιόπιστη σύγκριση εγγράφων στις Java εφαρμογές σας. Θα καλύψουμε τα πάντα, από τη βασική ρύθμιση έως την προχωρημένη διαχείριση μεταδεδομένων, καθώς και παραδείγματα πραγματικού κόσμου που μπορείτε να χρησιμοποιήσετε στην παραγωγή. Στο τέλος, θα ξέρετε πώς να:

  • Ρυθμίσετε το GroupDocs.Comparison στο Java project σας (είναι πιο εύκολο απ' ό,τι νομίζετε)
  • compare documents in java διατηρώντας την ακεραιότητα των μεταδεδομένων
  • Διαχειριστείτε σενάρια java compare multiple files και java compare password protected
  • Βελτιστοποιήσετε την απόδοση για επεξεργασία εγγράφων μεγάλης κλίμακας

Έτοιμοι να κάνετε τη σύγκριση εγγράφων παιχνιδάκι στις Java εφαρμογές σας; Ας βουτήξουμε!

Γρήγορες Απαντήσεις

  • Ποια βιβλιοθήκη μου επιτρέπει να συγκρίνω έγγραφα σε java; GroupDocs.Comparison for Java
  • Μπορώ να συγκρίνω πολλά αρχεία ταυτόχρονα; Ναι – προσθέστε όσες στοχευμένες εγγραφές χρειάζεστε
  • Πώς διαχειρίζομαι έγγραφα με κωδικό πρόσβασης; Χρησιμοποιήστε LoadOptions με τον κωδικό του εγγράφου
  • Χρειάζομαι άδεια για παραγωγή; Μια έγκυρη άδεια GroupDocs αφαιρεί τα υδατογραφήματα και τους περιορισμούς
  • Ποια έκδοση Java απαιτείται; JDK 8+, συνιστάται JDK 11+

Τι είναι το compare documents in java;

Η σύγκριση εγγράφων σε Java σημαίνει προγραμματιστική ανίχνευση διαφορών — αλλαγές κειμένου, επεξεργασίες μορφοποίησης ή ενημερώσεις μεταδεδομένων — μεταξύ δύο ή περισσότερων αρχείων χρησιμοποιώντας μια βιβλιοθήκη που κατανοεί τη δομή του εγγράφου. Το GroupDocs.Comparison αφαιρεί την πολυπλοκότητα, παρέχοντάς σας ένα απλό API για τη δημιουργία ενός εγγράφου diff που επισημαίνει κάθε αλλαγή.

Γιατί να Χρησιμοποιήσετε το GroupDocs.Comparison για Java;

  • Πλούσια υποστήριξη μορφών – DOCX, PDF, XLSX, PPTX, TXT και άλλα
  • Διαχείριση μεταδεδομένων – επιλέξτε πηγή, στόχο ή χωρίς μεταδεδομένα για το αποτέλεσμα
  • Υποστήριξη κωδικού – ανοίξτε προστατευμένα αρχεία χωρίς χειροκίνητη αποκρυπτογράφηση
  • Κλιμακώσιμη απόδοση – επεξεργασία σε παρτίδες, ασύγχρονη εκτέλεση και σχεδίαση με αποδοτική μνήμη

Προαπαιτούμενα

  • Περιβάλλον Java: JDK 8+ (συνιστάται JDK 11+), IDE της επιλογής σας, Maven (ή Gradle)
  • Βιβλιοθήκη GroupDocs.Comparison: Έκδοση 25.2 ή νεότερη (πάντα πάρτε την πιο πρόσφατη)
  • Άδεια: Δωρεάν δοκιμή, προσωρινή άδεια 30 ημερών ή εμπορική άδεια

Ρύθμιση του GroupDocs.Comparison στο Project σας

Διαμόρφωση Maven

Πρώτα απ' όλα – προσθέστε το αποθετήριο GroupDocs και την εξάρτηση στο pom.xml. Εδώ πολλά tutorials γίνονται περιττά πολύπλοκα, αλλά στην πραγματικότητα είναι αρκετά απλό:

<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 releases page. Οι νέες εκδόσεις συχνά περιλαμβάνουν βελτιώσεις απόδοσης και διορθώσεις σφαλμάτων που μπορούν να σας εξοικονομήσουν προβλήματα.

Απόκτηση της Άδειας σας

Αυτό που δεν συνειδητοποιούν πολλοί προγραμματιστές: μπορείτε να ξεκινήσετε τη δοκιμή του GroupDocs.Comparison αμέσως με τη δωρεάν δοκιμή τους. Δεν απαιτείται πιστωτική κάρτα, χωρίς δεσμεύσεις.

Οι επιλογές σας:

  1. Free Trial – ιδανική για δοκιμές και μικρά έργα. Απλώς κατεβάστε και ξεκινήστε τον κώδικα!
  2. Temporary License – χρειάζεστε περισσότερο χρόνο για αξιολόγηση; Πάρτε μια προσωρινή άδεια 30 ημερών εδώ
  3. Commercial License – έτοιμοι για παραγωγή; Δείτε τις τιμές εδώ

Η δωρεάν δοκιμή περιλαμβάνει όλα τα χαρακτηριστικά αλλά προσθέτει υδατογράφημα στα αρχεία εξόδου. Για ανάπτυξη και δοκιμές, αυτό είναι συνήθως εντάξει.

Υλοποίηση Σύγκρισης Εγγράφων: Ο Πλήρης Οδηγός

Τώρα το κύριο γεγονός! Θα δημιουργήσουμε μια πλήρη λύση σύγκρισης εγγράφων βήμα προς βήμα. Μην ανησυχείτε – θα εξηγήσουμε όχι μόνο το «πώς», αλλά και το «γιατί» πίσω από κάθε απόφαση.

Κατανόηση Πηγών Μεταδεδομένων (Αυτό είναι Σημαντικό!)

Πριν ξεκινήσουμε τον κώδικα, ας μιλήσουμε για κάτι που μπερδεύει πολλούς προγραμματιστές: τις πηγές μεταδεδομένων. Όταν compare documents in java, πρέπει να αποφασίσετε ποια μεταδεδομένα εγγράφου (συγγραφέας, ημερομηνία δημιουργίας, προσαρμοσμένες ιδιότητες κλπ.) θα διατηρηθούν στο αποτέλεσμα.

GroupDocs.Comparison σας προσφέρει τρεις επιλογές:

  • SOURCE – χρήση μεταδεδομένων από το αρχικό έγγραφο
  • TARGET – χρήση μεταδεδομένων από το έγγραφο με το οποίο συγκρίνετε
  • NONE – αφαίρεση όλων των μεταδεδομένων από το αποτέλεσμα

Για τις περισσότερες επιχειρηματικές εφαρμογές, θα θέλετε να χρησιμοποιήσετε το SOURCE για διατήρηση της συνέπειας.

Υλοποίηση Βήμα‑Βήμα

Θα δημιουργήσουμε ένα επαναχρησιμοποιήσιμο εργαλείο που μπορείτε να ενσωματώσετε σε οποιοδήποτε project.

Βήμα 1: Εισαγωγή των Απαιτούμενων Κλάσεων

import com.groupdocs.comparison.Comparer;
import com.groupdocs.comparison.options.enums.MetadataType;
import com.groupdocs.comparison.options.save.SaveOptions;
import java.nio.file.Path;
import java.io.IOException;

Βήμα 2: Δημιουργία του Αντικειμένου Comparer

Εδώ αρχίζει η μαγεία. Η κλάση Comparer είναι το κύριο σημείο εισόδου για όλες τις λειτουργίες σύγκρισης:

try (Comparer comparer = new Comparer("YOUR_DOCUMENT_DIRECTORY/source.docx")) {
    // All our comparison logic goes here
}

Γιατί να χρησιμοποιήσετε try‑with‑resources; Η κλάση Comparer υλοποιεί το AutoCloseable, που σημαίνει ότι καθαρίζει σωστά τους πόρους όταν τελειώσετε. Αυτό αποτρέπει διαρροές μνήμης – ιδιαίτερα σημαντικό όταν επεξεργάζεστε πολλά έγγραφα.

Βήμα 3: Προσθήκη Στοχευμένων Εγγράφων για Σύγκριση

comparer.add("YOUR_DOCUMENT_DIRECTORY/target1.docx");

Κάτι ενδιαφέρον: μπορείτε πραγματικά να προσθέσετε πολλαπλά στοχευμένα έγγραφα και να τα συγκρίνετε όλα με το πηγαίο σε μία λειτουργία. Απλώς καλέστε add() πολλές φορές:

comparer.add("YOUR_DOCUMENT_DIRECTORY/target1.docx");
comparer.add("YOUR_DOCUMENT_DIRECTORY/target2.docx");
comparer.add("YOUR_DOCUMENT_DIRECTORY/target3.docx");

Βήμα 4: Διαμόρφωση Διαχείρισης Μεταδεδομένων και Εκτέλεση Σύγκρισης

Εδώ διαμορφώνουμε την πηγή μεταδεδομένων και εκτελούμε την πραγματική σύγκριση:

final Path resultPath = comparer.compare("output/comparison_result.docx",
        new SaveOptions.Builder()
                .setCloneMetadataType(MetadataType.SOURCE)
                .build());

Τι συμβαίνει εδώ; Λέμε στο GroupDocs να:

  1. Συγκρίνει όλα τα προστιθέμενα έγγραφα με το πηγαίο
  2. Αποθηκεύει το αποτέλεσμα στη συγκεκριμένη διαδρομή
  3. Χρησιμοποιεί τα μεταδεδομένα του εγγράφου SOURCE στο τελικό αποτέλεσμα

Πλήρες Παράδειγμα Λειτουργίας

Ας ενώσουμε όλα σε μια μέθοδο που μπορείτε πραγματικά να χρησιμοποιήσετε:

public class DocumentComparison {
    
    public static Path compareDocumentsWithMetadata(
            String sourcePath, 
            String targetPath, 
            String outputPath) throws IOException {
        
        try (Comparer comparer = new Comparer(sourcePath)) {
            // Add the target document
            comparer.add(targetPath);
            
            // Configure comparison options
            SaveOptions saveOptions = new SaveOptions.Builder()
                    .setCloneMetadataType(MetadataType.SOURCE)
                    .build();
            
            // Execute comparison and return result path
            return comparer.compare(outputPath, saveOptions);
        }
    }
}

Συνηθισμένα Πάγια και Πώς να τα Αποφύγετε

Αφού βοήθησα εκατοντάδες προγραμματιστές να υλοποιήσουν σύγκριση εγγράφων, έχω δει τα ίδια προβλήματα να εμφανίζονται επανειλημμένα. Εδώ είναι τα κύρια (και πώς να τα διορθώσετε):

Προβλήματα Διαδρομών Αρχείων

  • Πρόβλημα: FileNotFoundException παρόλο που το αρχείο υπάρχει
  • Λύση: Πάντα χρησιμοποιείτε απόλυτες διαδρομές ή σωστά επιλύετε τις σχετικές
// Instead of this:
String sourcePath = "documents/source.docx";

// Do this:
String sourcePath = Paths.get("documents", "source.docx").toAbsolutePath().toString();

Προβλήματα Διαχείρισης Μνήμης

  • Πρόβλημα: Σφάλματα έλλειψης μνήμης όταν συγκρίνονται μεγάλα έγγραφα
  • Λύση: Αυξήστε το μέγεθος heap του JVM και χρησιμοποιήστε σωστή διαχείριση πόρων
# Add these JVM arguments when running your application
-Xmx4g -XX:+UseG1GC

Λανθασμένη Διαχείριση Μεταδεδομένων

  • Πρόβλημα: Απώλεια σημαντικών μεταδεδομένων εγγράφου κατά τη σύγκριση
  • Λύση: Πάντα ορίζετε ρητά τον τύπο μεταδεδομένων – μην βασίζεστε στις προεπιλογές
// Always be explicit about metadata handling
SaveOptions saveOptions = new SaveOptions.Builder()
        .setCloneMetadataType(MetadataType.SOURCE)  // Be explicit!
        .build();

Προβλήματα Ρύθμισης Άδειας

  • Πρόβλημα: Υδατογραφήματα στην παραγωγή
  • Λύση: Επαληθεύστε ότι η άδεια φορτώνεται σωστά πριν δημιουργήσετε αντικείμενα Comparer
// Load license at application startup
License license = new License();
license.setLicense("path/to/your/license.lic");

Καλές Πρακτικές για Χρήση στην Παραγωγή

Βάσει πραγματικής εμπειρίας, εδώ είναι οι πρακτικές που διαχωρίζουν τις ερασιτεχνικές υλοποιήσεις από τις έτοιμες για παραγωγή λύσεις:

Διαχείριση Σφαλμάτων που Πραγματικά Βοηθά

Μην απλώς πιάσετε εξαιρέσεις – χειριστείτε τις με νόημα:

public ComparisonResult compareDocuments(String source, String target) {
    try (Comparer comparer = new Comparer(source)) {
        comparer.add(target);
        Path result = comparer.compare("output.docx", 
            new SaveOptions.Builder()
                .setCloneMetadataType(MetadataType.SOURCE)
                .build());
        
        return new ComparisonResult(true, result.toString(), null);
        
    } catch (IOException e) {
        logger.error("File access error during comparison", e);
        return new ComparisonResult(false, null, "Unable to access document files");
        
    } catch (Exception e) {
        logger.error("Unexpected error during document comparison", e);
        return new ComparisonResult(false, null, "Document comparison failed");
    }
}

Βελτιστοποίηση Απόδοσης

Για σενάρια υψηλού όγκου, εξετάστε αυτές τις βελτιστοποιήσεις:

  1. Επαναχρησιμοποίηση αντικειμένων Comparer όταν είναι δυνατό (αλλά προσέξτε την ασφάλεια νήματος)
  2. Επεξεργασία εγγράφων σε παρτίδες για να μην υπερφορτώνετε τους πόρους του συστήματος
  3. Χρήση ασύγχρονης επεξεργασίας για μεγάλα έγγραφα
  4. Παρακολούθηση χρήσης μνήμης και προσαρμογή ρυθμίσεων JVM ανάλογα

Σκέψεις Ασφαλείας

  • Επικύρωση τύπων αρχείων πριν την επεξεργασία
  • Εφαρμογή κατάλληλων ελέγχων πρόσβασης
  • Καθαρισμός προσωρινών αρχείων αμέσως μετά τη χρήση
  • Σκέψη κρυπτογράφησης των αποτελεσμάτων σύγκρισης

Πραγματικές Εφαρμογές και Περιπτώσεις Χρήσης

Ας δούμε πώς οι προγραμματιστές χρησιμοποιούν πραγματικά το GroupDocs.Comparison στην παραγωγή:

Νομική Ανασκόπηση Εγγράφων

Τα νομικά γραφεία χρησιμοποιούν τη σύγκριση εγγράφων για να παρακολουθούν τις αλλαγές σε συμβάσεις και νομικές συμφωνίες. Η λειτουργία διατήρησης μεταδεδομένων είναι κρίσιμη εδώ, επειδή χρειάζεται να διατηρούν την προέλευση του εγγράφου.

// Typical legal document comparison workflow
public void reviewContractChanges(String originalContract, String revisedContract) {
    try (Comparer comparer = new Comparer(originalContract)) {
        comparer.add(revisedContract);
        
        SaveOptions options = new SaveOptions.Builder()
                .setCloneMetadataType(MetadataType.SOURCE)  // Preserve original metadata
                .build();
        
        Path result = comparer.compare("contract_review.docx", options);
        
        // Send result to legal team for review
        notifyLegalTeam(result);
    }
}

Συστήματα Διαχείρισης Περιεχομένου

Οι πλατφόρμες CMS χρησιμοποιούν τη σύγκριση εγγράφων για έλεγχο εκδόσεων και παρακολούθηση αλλαγών:

public class CMSDocumentVersioning {
    
    public VersionComparisonResult compareVersions(
            DocumentVersion current, 
            DocumentVersion previous) {
        
        try (Comparer comparer = new Comparer(current.getFilePath())) {
            comparer.add(previous.getFilePath());
            
            String outputName = String.format("comparison_%s_vs_%s.docx", 
                current.getVersionNumber(), 
                previous.getVersionNumber());
            
            Path result = comparer.compare(outputName, 
                new SaveOptions.Builder()
                    .setCloneMetadataType(MetadataType.SOURCE)
                    .build());
            
            return new VersionComparisonResult(result, current, previous);
        }
    }
}

Ανάλυση Χρηματοοικονομικών Εγγράφων

Τα χρηματοοικονομικά ιδρύματα το χρησιμοποιούν για συμμόρφωση με κανονισμούς και ίχνη ελέγχου:

public AuditResult auditFinancialDocument(String originalReport, String submittedReport) {
    // Compare submitted report against original
    // Metadata preservation is critical for audit compliance
    try (Comparer comparer = new Comparer(originalReport)) {
        comparer.add(submittedReport);
        
        Path auditResult = comparer.compare("audit_comparison.docx",
            new SaveOptions.Builder()
                .setCloneMetadataType(MetadataType.SOURCE)
                .build());
        
        return generateAuditReport(auditResult);
    }
}

Βελτιστοποίηση Απόδοσης και Κλιμάκωση

Όταν είστε έτοιμοι να διαχειριστείτε σοβαρούς όγκους εγγράφων, αυτές οι στρατηγικές θα κρατήσουν την εφαρμογή σας ανταποκρινόμενη:

Διαχείριση Μνήμης

Τα μεγάλα έγγραφα μπορούν γρήγορα να καταναλώσουν τη διαθέσιμη μνήμη. Εδώ είναι πώς να τα διαχειριστείτε αποδοτικά:

public class OptimizedDocumentProcessor {
    
    private final ExecutorService executor = Executors.newFixedThreadPool(
        Runtime.getRuntime().availableProcessors());
    
    public CompletableFuture<Path> compareDocumentsAsync(
            String source, 
            String target, 
            String output) {
        
        return CompletableFuture.supplyAsync(() -> {
            try (Comparer comparer = new Comparer(source)) {
                comparer.add(target);
                return comparer.compare(output, 
                    new SaveOptions.Builder()
                        .setCloneMetadataType(MetadataType.SOURCE)
                        .build());
            }
        }, executor);
    }
}

Επεξεργασία σε Παρτίδες

Για πολλαπλές συγκρίσεις εγγράφων, η επεξεργασία σε παρτίδες είναι ο φίλος σας:

public List<ComparisonResult> processBatch(List<DocumentPair> documentPairs) {
    return documentPairs.parallelStream()
        .map(this::compareDocumentPair)
        .collect(Collectors.toList());
}

private ComparisonResult compareDocumentPair(DocumentPair pair) {
    try (Comparer comparer = new Comparer(pair.getSourcePath())) {
        comparer.add(pair.getTargetPath());
        Path result = comparer.compare(pair.getOutputPath(),
            new SaveOptions.Builder()
                .setCloneMetadataType(MetadataType.SOURCE)
                .build());
        return new ComparisonResult(pair, result, true);
    } catch (Exception e) {
        return new ComparisonResult(pair, null, false, e.getMessage());
    }
}

Οδηγός Επίλυσης Προβλημάτων

Όταν τα πράγματα πάθουν στραβά (και μερικές φορές συμβαίνει), εδώ είναι η λίστα ελέγχου εντοπισμού σφαλμάτων:

Σφάλματα «Comparison Failed»

Κοινές αιτίες:

  • Μη υποστηριζόμενη μορφή αρχείου
  • Κατεστραμμένα πηγαία έγγραφα
  • Ανεπαρκής μνήμη
  • Προβλήματα δικαιωμάτων αρχείου

Βήματα εντοπισμού σφαλμάτων:

// Add comprehensive logging to identify the issue
logger.debug("Starting comparison: source={}, target={}", sourcePath, targetPath);

try (Comparer comparer = new Comparer(sourcePath)) {
    logger.debug("Comparer initialized successfully");
    
    comparer.add(targetPath);
    logger.debug("Target document added successfully");
    
    Path result = comparer.compare(outputPath, saveOptions);
    logger.info("Comparison completed successfully: result={}", result);
    
    return result;
} catch (Exception e) {
    logger.error("Comparison failed", e);
    throw new DocumentComparisonException("Failed to compare documents", e);
}

Προβλήματα Απόδοσης

Αν οι συγκρίσεις διαρκούν πολύ:

  1. Ελέγξτε το μέγεθος του εγγράφου – αρχεία πάνω από 100 MB μπορεί να χρειάζονται ειδική διαχείριση
  2. Παρακολουθήστε τη χρήση μνήμης – αυξήστε το μέγεθος heap αν χρειάζεται
  3. Επαληθεύστε την απόδοση I/O αρχείων – αργός αποθηκευτικός χώρος μπορεί να περιορίζει τις λειτουργίες
  4. Σκεφτείτε τη μορφή εγγράφου – ορισμένες μορφές είναι πιο πολύπλοκες στην επεξεργασία

Διαρροές Μνήμης

Σημάδια ότι μπορεί να έχετε διαρροές μνήμης:

  • Η απόδοση της εφαρμογής μειώνεται με το χρόνο
  • OutOfMemoryError μετά την επεξεργασία πολλών εγγράφων
  • Υψηλή δραστηριότητα garbage collection

Λύση: Πάντα χρησιμοποιείτε try‑with‑resources και παρακολουθείτε την εφαρμογή σας με εργαλεία profiling.

Διαχείριση Αρχείων με Κωδικό Πρόσβασης

Αν χρειάζεται να java compare password protected έγγραφα, χρησιμοποιήστε το LoadOptions κατά το άνοιγμα του πηγαίου ή του στοχευμένου:

LoadOptions loadOptions = new LoadOptions("your_password");
try (Comparer comparer = new Comparer("protected_document.docx", loadOptions)) {
    // Process password‑protected document
}

Ενσωμάτωση με Spring Boot

Για προγραμματιστές που δημιουργούν μικροϋπηρεσίες, τυλίξτε τη λογική σύγκρισης σε ένα Spring service bean:

@Service
public class DocumentComparisonService {
    
    public ComparisonResult compareDocuments(String source, String target) {
        try (Comparer comparer = new Comparer(source)) {
            comparer.add(target);
            Path result = comparer.compare("output.docx",
                new SaveOptions.Builder()
                    .setCloneMetadataType(MetadataType.SOURCE)
                    .build());
            return new ComparisonResult(result);
        }
    }
}

Συχνές Ερωτήσεις

Ε: Μπορώ να συγκρίνω περισσότερα από δύο έγγραφα ταυτόχρονα;
Α: Απόλυτα! Προσθέστε πολλαπλά στοχευμένα έγγραφα με comparer.add() πριν εκτελέσετε τη σύγκριση.

Ε: Ποιες μορφές αρχείων υποστηρίζει το GroupDocs.Comparison;
Α: Υποστηρίζει DOCX, PDF, XLSX, PPTX, TXT και πολλές άλλες. Δείτε τη πλήρη λίστα στην επίσημη τεκμηρίωση.

Ε: Πώς διαχειρίζομαι έγγραφα με κωδικό πρόσβασης;
Α: Χρησιμοποιήστε την κλάση LoadOptions για να παρέχετε τον κωδικό όταν δημιουργείτε το αντικείμενο Comparer (δείτε το παράδειγμα παραπάνω).

Ε: Είναι το GroupDocs.Comparison thread‑safe;
Α: Ένα μοναδικό αντικείμενο Comparer δεν είναι thread‑safe, αλλά μπορείτε με ασφάλεια να χρησιμοποιήσετε πολλαπλά αντικείμενα σε παράλληλα νήματα.

Ε: Πώς μπορώ να βελτιώσω την απόδοση για μεγάλα έγγραφα;
Α: Αυξήστε το heap του JVM (-Xmx), επεξεργαστείτε αρχεία ασύγχρονα, κάντε τα σε παρτίδες και επαναχρησιμοποιήστε αντικείμενα Comparer όταν είναι κατάλληλο.

Πρόσθετοι Πόροι


Τελευταία Ενημέρωση: 2025-12-21
Δοκιμάστηκε Με: GroupDocs.Comparison 25.2
Συγγραφέας: GroupDocs