Java Σύγκριση Αρχείων Excel Χρησιμοποιώντας το Document Comparison API

Εισαγωγή

Έχετε περάσει ώρες συγκρίνοντας χειροκίνητα έγγραφα, ψάχνοντας αλλαγές γραμμή προς γραμμή; Είτε παρακολουθείτε αναθεωρήσεις συμβάσεων, ελέγχετε τεκμηρίωση κώδικα, είτε java compare excel files για οικονομικές αναφορές, η χειροκίνητη σύγκριση εγγράφων είναι χρονοβόρα και επιρρεπής σε σφάλματα.

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

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

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

  • Μπορεί το GroupDocs να συγκρίνει αρχεία Excel σε Java; Ναι, απλώς φορτώστε τα αρχεία .xlsx με την κλάση Comparer.
  • Πώς να αγνοήσετε κεφαλίδες/υποσέλιδα; Ορίστε setHeaderFootersComparison(false) στο CompareOptions.
  • Τι γίνεται με μεγάλα PDF; Αυξήστε τη μνήμη heap του JVM και ενεργοποιήστε τη βελτιστοποίηση μνήμης.
  • Μπορώ να συγκρίνω PDF με κωδικό πρόσβασης; Παρέχετε τον κωδικό πρόσβασης κατά τη δημιουργία του Comparer.
  • Υπάρχει τρόπος να αλλάξετε τα χρώματα επισήμανσης; Χρησιμοποιήστε StyleSettings για τα προστιθέμενα, διαγραμμένα και τροποποιημένα στοιχεία.

Τι είναι το java compare excel files;

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

Γιατί να Χρησιμοποιήσετε ένα Java Document Comparison API;

Η Επιχειρηματική Περίπτωση για Αυτοματοποίηση

Η χειροκίνητη σύγκριση εγγράφων δεν είναι μόνο κουραστική—είναι επικίνδυνη. Μελέτες δείχνουν ότι οι άνθρωποι παραλείπουν περίπου το 20 % των σημαντικών αλλαγών όταν συγκρίνουν έγγραφα χειροκίνητα. Να γιατί οι προγραμματιστές μεταβαίνουν σε προγραμματιστικές λύσεις:

Κοινά Προβλήματα:

  • Απώλεια Χρόνου: Οι ανώτεροι προγραμματιστές ξοδεύουν 3–4 ώρες εβδομαδιαία για έλεγχο εγγράφων
  • Ανθρώπινο Σφάλμα: Παραλείπουν κρίσιμες αλλαγές σε νομικές συμβάσεις ή τεχνικές προδιαγραφές
  • Ασυνεπή Πρότυπα: Διαφορετικά μέλη της ομάδας επισημαίνουν αλλαγές με διαφορετικό τρόπο
  • Θέματα Κλίμακας: Η σύγκριση εκατοντάδων εγγράφων χειροκίνητα γίνεται αδύνατη

Οι Λύσεις API Παρέχουν:

  • 99,9 % Ακρίβεια: Ανιχνεύει κάθε αλλαγή σε επίπεδο χαρακτήρα αυτόματα
  • Ταχύτητα: Συγκρίνει έγγραφα άνω των 100 σελίδων σε λιγότερο από 30 δευτερόλεπτα
  • Συνέπεια: Τυποποιημένη επισήμανση και αναφορά σε όλες τις συγκρίσεις
  • Ενσωμάτωση: Ενσωματώνεται άψογα σε υπάρχουσες ροές εργασίας Java και pipelines CI/CD

Πότε να Χρησιμοποιήσετε APIs Σύγκρισης Εγγράφων

Αυτό το Java document comparison API διαπρέπει σε αυτά τα σενάρια:

  • Νομική Ανασκόπηση Εγγράφων – Παρακολουθείτε τις αλλαγές και τροποποιήσεις συμβάσεων αυτόματα
  • Τεχνική Τεκμηρίωση – Παρακολουθείτε ενημερώσεις τεκμηρίωσης API και changelogs
  • Διαχείριση Περιεχομένου – Συγκρίνετε δημοσιεύσεις blog, υλικό μάρκετινγκ ή εγχειρίδια χρήστη
  • Έλεγχος Συμμόρφωσης – Διασφαλίζετε ότι τα έγγραφα πολιτικής πληρούν τις κανονιστικές απαιτήσεις
  • Έλεγχος Εκδόσεων – Συμπληρώνετε το Git με diff εγγράφων αναγνώσιμα από άνθρωπο

Υποστηριζόμενες Μορφές Αρχείων και Δυνατότητες

GroupDocs.Comparison for Java χειρίζεται 50+ μορφές αρχείων έτοιμες προς χρήση:

Δημοφιλείς Μορφές:

  • Documents: Word (DOCX, DOC), PDF, RTF, ODT
  • Spreadsheets: Excel (XLSX, XLS), CSV, ODS
  • Presentations: PowerPoint (PPTX, PPT), ODP
  • Text Files: TXT, HTML, XML, MD
  • Images: PNG, JPEG, BMP, GIF (visual comparison)

Προηγμένες Λειτουργίες:

  • Σύγκριση εγγράφων με κωδικό πρόσβασης
  • Ανίχνευση και σύγκριση κειμένου πολλαπλών γλωσσών
  • Προσαρμοσμένες ρυθμίσεις ευαισθησίας για διαφορετικούς τύπους εγγράφων
  • Επεξεργασία παρτίδας για πολλαπλά ζεύγη εγγράφων
  • Επιλογές ανάπτυξης στο cloud και on‑premise

Προαπαιτούμενα και Ρύθμιση

Απαιτήσεις Συστήματος

Πριν βυθιστείτε στον κώδικα, βεβαιωθείτε ότι το περιβάλλον ανάπτυξής σας πληροί αυτές τις απαιτήσεις:

  1. Java Development Kit (JDK): Έκδοση 8 ή νεότερη (συνιστάται JDK 11+)
  2. Build Tool: Maven 3.6+ ή Gradle 6.0+
  3. Memory: Ελάχιστη 4 GB RAM για επεξεργασία μεγάλων εγγράφων
  4. Storage: 500 MB+ ελεύθερος χώρος για προσωρινά αρχεία σύγκρισης

Ρύθμιση Maven

Προσθέστε το αποθετήριο 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>

Ρύθμιση Άδειας

Για Ανάπτυξη και Δοκιμές:

  • Free Trial: Κατεβάστε από GroupDocs Downloads – περιλαμβάνει εξαγωγή με υδατογράφημα
  • Temporary License: Αποκτήστε πλήρη πρόσβαση 30 ημερών μέσω GroupDocs Support

Για Παραγωγή:

  • Full License: Αγοράστε μέσω GroupDocs Purchase για απεριόριστη εμπορική χρήση

Μόλις έχετε το αρχείο άδειας, αρχικοποιήστε το ως εξής:

// 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");

Pro Tip: Αποθηκεύστε το αρχείο άδειας στον φάκελο resources της εφαρμογής σας και φορτώστε το με getClass().getResourceAsStream() για καλύτερη φορητότητα μεταξύ περιβαλλόντων.

Οδηγός Βασικής Υλοποίησης

Χαρακτηριστικό 1: Παράβλεψη Σύγκρισης Κεφαλίδας και Υποσέλιδου

Why This Matters: Οι κεφαλίδες και τα υποσέλιδα συχνά περιέχουν δυναμικό περιεχόμενο όπως χρονικές σφραγίδες, αριθμούς σελίδων ή πληροφορίες συγγραφέα που αλλάζουν μεταξύ εκδόσεων εγγράφων αλλά δεν είναι σχετικές με τη σύγκριση περιεχομένου. Η παράβλεψη αυτών των τμημάτων μειώνει το «θόρυβο» και εστιάζει σε ουσιαστικές αλλαγές.

Real‑World Scenario: Συγκρίνετε εκδόσεις συμβάσεων όπου κάθε αναθεώρηση έχει διαφορετικές ημερομηνίες στο υποσέλιδο, αλλά σας ενδιαφέρουν μόνο οι τροποποιήσεις των ρήσεων στο κύριο κείμενο.

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);
        }
    }
}

Key Benefits:

  • Καθαρότερα Αποτελέσματα – Επικεντρωθείτε στις αλλαγές περιεχομένου αντί στις διαφορές μορφοποίησης
  • Μειωμένα Ψευδή Θετικά – Εξαλείψτε τις άσχετες ειδοποιήσεις αλλαγών
  • Καλύτερη Απόδοση – Παραλείψτε περιττές λειτουργίες σύγκρισης

Χαρακτηριστικό 2: Ορισμός Μεγέθους Χαρτιού Εξόδου για Επαγγελματικές Αναφορές

Business Context: Όταν δημιουργείτε αναφορές σύγκρισης για εκτύπωση ή διανομή σε PDF, ο έλεγχος του μεγέθους χαρτιού εξασφαλίζει συνεπή μορφοποίηση σε διαφορετικές πλατφόρμες προβολής και εκτυπώσεις.

Use Case: Οι νομικές ομάδες συχνά χρειάζονται αναφορές σύγκρισης σε συγκεκριμένες μορφές για υποβολές σε δικαστήρια ή παρουσιάσεις σε πελάτες.

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);
        }
    }
}

Available Paper Sizes: A0‑A10, Letter, Legal, Tabloid, και προσαρμοσμένες διαστάσεις. Επιλέξτε ανάλογα με τις απαιτήσεις διανομής—A4 για ευρωπαϊκούς πελάτες, Letter για ομάδες στις ΗΠΑ.

Χαρακτηριστικό 3: Ρύθμιση Ευαισθησίας Σύγκρισης

The Challenge: Διαφορετικοί τύποι εγγράφων απαιτούν διαφορετικά επίπεδα ανίχνευσης αλλαγών. Οι νομικές συμβάσεις χρειάζονται ανίχνευση κάθε κόμματος, ενώ το υλικό μάρκετινγκ μπορεί να ενδιαφέρεται μόνο για σημαντικές αλλαγές περιεχομένου.

How Sensitivity Works: Η κλίμακα ευαισθησίας κυμαίνεται από 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);
        }
    }
}

Best Practices for Sensitivity Settings:

  • Νομικά Έγγραφα: Χρησιμοποιήστε 90‑100 για πλήρη ανίχνευση αλλαγών
  • Περιεχόμενο Μάρκετινγκ: Χρησιμοποιήστε 40‑60 για εστίαση σε σημαντικές τροποποιήσεις
  • Τεχνικές Προδιαγραφές: Χρησιμοποιήστε 70‑80 για σύλληψη σημαντικών λεπτομερειών ενώ φιλτράρετε μικρές μορφοποιήσεις

Χαρακτηριστικό 4: Προσαρμογή Στυλ Αλλαγών για Καλύτερη Οπτική Επικοινωνία

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

Professional Approach: Χρησιμοποιήστε την ψυχολογία των χρωμάτων—κόκκινο για διαγραφές δημιουργεί αίσθηση επείγοντος, πράσινο για προσθήκες υποδηλώνει θετικές αλλαγές, και μπλε για τροποποιήσεις δείχνει ότι απαιτείται ανασκόπηση.

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);
        }
    }
}

Advanced Style Options (available in StyleSettings):

  • Τροποποιήσεις βάρους γραμματοσειράς, μεγέθους και οικογένειας
  • Χρώματα φόντου και διαφάνειας
  • Στυλ περιγράμματος για διαφορετικούς τύπους αλλαγών
  • Επιλογές διαγράμμισης για διαγραμμένο περιεχόμενο

Συνηθισμένα Προβλήματα και Επίλυση

Διαχείριση Μνήμης για Μεγάλα Έγγραφα

Problem: OutOfMemoryError όταν συγκρίνετε έγγραφα άνω των 50 MB

Solution: Αυξήστε τη μνήμη heap του JVM και εφαρμόστε streaming

# Increase heap size for large document processing
java -Xmx4g -XX:MaxMetaspaceSize=512m YourComparisonApp

Code Optimization:

// 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();
}

Διαχείριση Κατεστραμμένων ή Προστατευμένων με Κωδικό Αρχείων

Issue: Η σύγκριση αποτυγχάνει με κλειδωμένα έγγραφα

Prevention Strategy:

// 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);
}

Βελτιστοποίηση Απόδοσης για Επεξεργασία Παρτίδας

Challenge: Επεξεργασία 100+ ζευγών εγγράφων αποδοτικά

Solution: Εφαρμόστε παράλληλη επεξεργασία με thread pools

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 Comparison Challenges:

  • Σαρωμένα PDF: Χρησιμοποιήστε προεπεξεργασία OCR για εξαγωγή κειμένου
  • Πολύπλοκες Διατάξεις: Μπορεί να απαιτούν χειροκίνητη ρύθμιση ευαισθησίας
  • Ενσωματωμένες Γραμματοσειρές: Διασφαλίστε συνεπή απόδοση γραμματοσειρών σε όλα τα περιβάλλοντα

Word Document Issues:

  • Παρακολούθηση Αλλαγών: Απενεργοποιήστε τις υπάρχουσες αλλαγές πριν τη σύγκριση
  • Ενσωματωμένα Αντικείμενα: Μπορεί να μην συγκρίνονται σωστά, εξάγετε και συγκρίνετε ξεχωριστά
  • Συμβατότητα Εκδόσεων: Δοκιμάστε με διαφορετικές εκδόσεις μορφής Word

Καλές Πρακτικές και Συμβουλές Απόδοσης

1. Προεπεξεργασία Εγγράφου

Clean Your Input: Αφαιρέστε περιττά μεταδεδομένα και μορφοποίηση πριν τη σύγκριση για βελτίωση της ακρίβειας και της ταχύτητας.

// Example preprocessing workflow
public void preprocessDocument(String filePath) {
    // Remove comments and tracked changes
    // Standardize formatting
    // Extract text‑only version for pure content comparison
}

2. Βέλτιστη Διαμόρφωση για Διαφορετικούς Τύπους Εγγράφων

Configuration Profiles:

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();
    }
}

3. Διαχείριση Σφαλμάτων και Καταγραφή

Robust Error Management:

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());
    }
}

4. Caching και Βελτιστοποίηση Απόδοσης

Implement Smart Caching:

  • Αποθηκεύστε στην cache τα αποτελέσματα σύγκρισης για ταυτόσια ζεύγη αρχείων
  • Αποθηκεύστε αποτυπώματα εγγράφων για αποφυγή επεξεργασίας αμετάβλητων αρχείων
  • Χρησιμοποιήστε ασύγχρονη επεξεργασία για μη‑κριτικές συγκρίσεις

Σενάρια Ενσωμάτωσης σε Πραγματικό Κόσμο

Σενάριο 1: Αυτοματοποιημένη Διαδικασία Ελέγχου Συμβάσεων

@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));
        }
    }
}

Σενάριο 2: Ενσωμάτωση Συστήματος Διαχείρισης Περιεχομένου

@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);
    }
}

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

Ε: Μπορώ να αγνοήσω κεφαλίδες και υποσέλιδα κατά τη σύγκριση στο GroupDocs για Java;
A: Ναι, χρησιμοποιήστε setHeaderFootersComparison(false) στο CompareOptions. Αυτό είναι χρήσιμο όταν οι κεφαλίδες περιέχουν δυναμικό περιεχόμενο όπως χρονικές σφραγίδες που δεν σχετίζονται με τις κύριες αλλαγές.

Ε: Πώς ορίζω το μέγεθος χαρτιού εξόδου σε Java χρησιμοποιώντας το GroupDocs;
A: Εφαρμόστε setPaperSize(PaperSize.A6) (ή οποιαδήποτε άλλη σταθερά) στο CompareOptions. Αυτό δημιουργεί εκτυπώσιμες αναφορές. Διαθέσιμα μεγέθη περιλαμβάνουν A0‑A10, Letter, Legal και Tabloid.

Ε: Είναι δυνατόν να ρυθμίσω την ευαισθησία σύγκρισης για διαφορετικούς τύπους εγγράφων;
A: Απόλυτα. Χρησιμοποιήστε setSensitivityOfComparison() με τιμή από 0‑100. Οι υψηλότερες τιμές ανιχνεύουν πιο λεπτομερείς αλλαγές—ιδανικό για νομικά έγγραφα· οι χαμηλότερες τιμές λειτουργούν καλά για περιεχόμενο μάρκετινγκ.

Ε: Μπορώ να προσαρμόσω το στυλ του κειμένου που προστέθηκε, διαγράφηκε ή τροποποιήθηκε κατά τη σύγκριση;
A: Ναι. Δημιουργήστε προσαρμοσμένα StyleSettings για κάθε τύπο αλλαγής και εφαρμόστε τα μέσω CompareOptions. Μπορείτε να ρυθμίσετε χρώματα επισήμανσης, γραμματοσειρές, περιγράμματα και άλλα ώστε να ταιριάζουν με το branding σας.

Ε: Ποια είναι τα προαπαιτούμενα για να ξεκινήσω με το GroupDocs Comparison σε Java;
A: Χρειάζεστε JDK 8+ (συνιστάται JDK 11+), Maven 3.6+ ή Gradle 6.0+, τουλάχιστον 4 GB RAM για μεγάλα έγγραφα και άδεια GroupDocs (διατίθεται δωρεάν δοκιμή). Προσθέστε το αποθετήριο και την εξάρτηση στο πρότζεκτ σας, στη συνέχεια αρχικοποιήστε την άδεια κατά την εκκίνηση.

Ε: Πώς διαχειρίζομαι έγγραφα με κωδικό πρόσβασης στο GroupDocs.Comparison;
A: Περνάτε τον κωδικό ως δεύτερο όρισμα κατά τη δημιουργία του Comparer: new Comparer(sourceFile, "password123"). Τυλίξτε την κλήση σε try‑catch για να χειριστείτε το PasswordRequiredException με χάρη.

Ε: Ποιες μορφές αρχείων υποστηρίζει το GroupDocs.Comparison για Java;
A: Πάνω από 50 μορφές, συμπεριλαμβανομένων Word (DOCX, DOC), PDF, Excel (XLSX, XLS), PowerPoint (PPTX, PPT), αρχεία κειμένου (TXT, HTML, XML) και εικόνες (PNG, JPEG) για οπτική σύγκριση. Το API ανιχνεύει αυτόματα τους τύπους, αλλά μπορείτε να καθορίσετε μορφές για βελτιώσεις απόδοσης σε παρτίδες.


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