Πώς να Χρησιμοποιήσετε το GroupDocs: Java Document Comparison Streams – Πλήρης Οδηγός
Εισαγωγή
Σας έχει συμβεί ποτέ να συγκρίνετε χειροκίνητα πολλές εκδόσεις εγγράφων, κλείνοντας τα μάτια στην οθόνη για να εντοπίσετε τις διαφορές; Αν εργάζεστε με συμβάσεις, νομικά έγγραφα ή οποιοδήποτε περιεχόμενο που περνάει από πολλές αναθεωρήσεις, ξέρετε πόσο επίπονη (και επιρρεπής σε σφάλματα) μπορεί να είναι αυτή η διαδικασία.
Όταν αναρωτιέστε πώς να χρησιμοποιήσετε το GroupDocs για αυτήν την εργασία, η απάντηση είναι απλή: Το GroupDocs.Comparison για Java σας επιτρέπει να αυτοματοποιήσετε ολόκληρη τη διαδικασία, συγκρίνοντας πολλαπλά έγγραφα ταυτόχρονα ενώ χρησιμοποιείτε ροές μνήμης‑αποδοτικές. Δεν πρόκειται μόνο για εξοικονόμηση χρόνου—αφορά την εξάλειψη ανθρώπινων λαθών και την κλιμάκωση των δυνατοτήτων επεξεργασίας εγγράφων σας.
Σε αυτόν τον οδηγό, θα περάσουμε βήμα‑βήμα από όλα όσα χρειάζεται να γνωρίζετε για την υλοποίηση σύγκρισης εγγράφων με πολλαπλές ροές (multi‑stream) σε Java. Θα μάθετε πότε να χρησιμοποιείτε αυτήν την προσέγγιση, πώς να αποφεύγετε κοινά λάθη και βέλτιστες πρακτικές σύγκρισης εγγράφων που θα κάνουν την υλοποίησή σας έτοιμη για παραγωγή.
Γρήγορες Απαντήσεις
- Ποιο είναι το κύριο όφελος της σύγκρισης με ροές; Μειώνει τη χρήση μνήμης επεξεργάζοντας τα έγγραφα απευθείας από ροές.
- Μπορώ να συγκρίνω περισσότερα από δύο έγγραφα ταυτόχρονα; Ναι, το GroupDocs σας επιτρέπει να συγκρίνετε πολλαπλά έγγραφα-στόχους σε μία εκτέλεση.
- Χρειάζομαι πληρωμένη άδεια για μεγάλα αρχεία; Μια δωρεάν δοκιμή λειτουργεί για δοκιμές· μια πλήρης άδεια αφαιρεί τα όρια μεγέθους για παραγωγή.
- Ποια έκδοση Java προτείνεται; Η Java 11+ προσφέρει την καλύτερη απόδοση και συμβατότητα.
- Είναι αυτή η προσέγγιση κατάλληλη για web εφαρμογές; Απόλυτα—η επεξεργασία ροών ταιριάζει καλά με σενάρια ανέβασμα‑και‑σύγκριση.
Τι είναι το “πώς να χρησιμοποιήσετε το GroupDocs” για Java Document Comparison Streams;
Η χρήση του GroupDocs.Comparison με ροές Java σημαίνει ότι τροφοδοτείτε τα δεδομένα του εγγράφου απευθείας από αντικείμενα InputStream αντί να φορτώνετε ολόκληρα αρχεία στη μνήμη. Αυτή η προσέγγιση είναι ιδανική για μεγάλα αρχεία, λειτουργίες παρτίδας ή οποιοδήποτε περιβάλλον όπου η αποδοτική χρήση πόρων έχει σημασία.
Γιατί να Χρησιμοποιήσετε Σύγκριση Εγγράφων με Ροές;
- Αποδοτικότητα Μνήμης – Μεγάλες αρχεία Word, PDF ή Excel επεξεργάζονται χωρίς να εξαντλείται η heap μνήμη.
- Κλιμάκωση – Συγκρίνετε εκατοντάδες έγγραφα σε μια εργασία παρτίδας ή σε υπηρεσία cloud.
- Απόδοση – Ταχύτεροι χρόνοι εκκίνησης επειδή τα αρχεία δεν φορτώνονται πλήρως πριν τη σύγκριση.
- Ευελιξία – Λειτουργεί αδιάλειπτα σε desktop εφαρμογές, μικρο‑υπηρεσίες και pipelines CI/CD.
Πότε να Χρησιμοποιήσετε Σύγκριση Εγγράφων με Ροές
Πριν βουτήξετε στον κώδικα, ας καταλάβουμε πότε η σύγκριση με ροές έχει νόημα:
Ιδανικό για Αυτές τις Καταστάσεις
- Επεξεργασία Μεγάλων Εγγράφων – Αρχεία 50 MB+ όπου η πίεση στη heap είναι πρόβλημα.
- Λειτουργίες Παρτίδας – Συγκρίνοντας δεκάδες ή εκατοντάδες έγγραφα χωρίς να τα φορτώνετε όλα ταυτόχρονα.
- Web Εφαρμογές – Οι χρήστες ανεβάζουν έγγραφα για σύγκριση· οι ροές κρατούν τη μνήμη του διακομιστή ελαφριά.
- Αυτοματοποιημένες Ροές Εργασίας – Ενσωμάτωση με DMS ή pipelines CI/CD που χρειάζονται γρήγορα, αξιόπιστα diff.
Παράλειψη Ροών Όταν
- Τα αρχεία είναι μικρά (κάτω από 10 MB) και η απλότητα υπερισχύει των κερδών απόδοσης.
- Πρέπει να κάνετε πολλαπλές περάσεις πάνω στο ίδιο περιεχόμενο (π.χ. εξαγωγή κειμένου πριν τη σύγκριση).
- Το περιβάλλον σας διαθέτει άφθονη μνήμη και η πρόσθετη πολυπλοκότητα δεν δικαιολογείται.
Προαπαιτούμενα και Ρύθμιση
Τι Θα Χρειαστείτε
- Java Development Kit (JDK) – Έκδοση 8 ή νεότερη (συνιστάται Java 11+).
- Maven – Για διαχείριση εξαρτήσεων (ή Gradle αν προτιμάτε).
- Βασικές Γνώσεις Java – try‑with‑resources, ροές, διαχείριση εξαιρέσεων.
- Δείγμα Εγγράφων – Μερικά αρχεία Word, PDF ή Excel για δοκιμές.
Ρύθμιση του GroupDocs.Comparison για Java
Η προσθήκη του GroupDocs.Comparison στο έργο σας είναι απλή με Maven. Προσθέστε αυτή τη ρύθμιση στο 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.Comparison χρησιμοποιώντας την δωρεάν άδεια δοκιμής—ιδανική για δοκιμές και μικρά έργα. Για παραγωγική χρήση, αποκτήστε προσωρινή άδεια κατά την ανάπτυξη ή αγοράστε πλήρη άδεια. Η δοκιμή λειτουργεί για εκμάθηση, αλλά μεγαλύτερα αρχεία μπορεί να αντιμετωπίσουν όρια.
Οδηγός Υλοποίησης Βήμα‑Βήμα
Κατανόηση της Προσέγγισης με Ροές
Όταν χρησιμοποιείτε ροές για σύγκριση εγγράφων, λέτε ουσιαστικά στη Java: “Μην φορτώνετε αυτά τα ολόκληρα αρχεία στη μνήμη. Διαβάστε μόνο ό,τι χρειάζεστε, όταν το χρειάζεστε.” Αυτό είναι κρίσιμο για μεγάλα έγγραφα ή περιβάλλοντα με περιορισμένη μνήμη.
Βήμα 1: Αρχικοποίηση του Comparer με το Πηγαίο Έγγραφο
Εδώ ξεκινάμε—δημιουργώντας ένα αντικείμενο Comparer με τη ροή του πηγαίου εγγράφου:
import com.groupdocs.comparison.Comparer;
import java.io.FileInputStream;
import java.io.InputStream;
try (InputStream sourceStream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/SOURCE_WORD")) {
try (Comparer comparer = new Comparer(sourceStream)) {
// Your comparer is now ready to accept target documents
// The try-with-resources ensures proper cleanup
}
}
Γιατί Λειτουργεί Αυτό το Πρότυπο
- Το try‑with‑resources κλείνει αυτόματα τις ροές, αποτρέποντας διαρροές μνήμης.
- Δεν φορτώνετε ολόκληρο το πηγαίο έγγραφο στη μνήμη εκ των προτέρων.
- Η διαχείριση εξαιρέσεων είναι ενσωματωμένη—αν το αρχείο δεν υπάρχει ή είναι κατεστραμμένο, θα το γνωρίζετε αμέσως.
Βήμα 2: Προσθήκη Πολλαπλών Εγγράφων‑Στόχων
Τώρα προσθέστε όσες στοχευόμενες ροές χρειάζεστε:
try (InputStream target1Stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/TARGET1_WORD"),
InputStream target2Stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/TARGET2_WORD"),
InputStream target3Stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/TARGET3_WORD")) {
comparer.add(target1Stream, target2Stream, target3Stream);
}
Συμβουλή: Μπορείτε να προσθέσετε όσες στοχευόμενες ροές επιτρέπει η μνήμη του συστήματός σας. Στην πράξη, η σύγκριση 10–15 εγγράφων ταυτόχρονα λειτουργεί καλά στα περισσότερα σύγχρονα μηχανήματα.
Βήμα 3: Εκτέλεση Σύγκρισης και Δημιουργία Αποτελεσμάτων
Τέλος, εκτελέστε τη σύγκριση και αποθηκεύστε τα αποτελέσματα:
import java.io.FileOutputStream;
import java.io.OutputStream;
import java.nio.file.Path;
try (OutputStream resultStream = new FileOutputStream("YOUR_OUTPUT_DIRECTORY/CompareMultipleDocumentsResult")) {
final Path resultPath = comparer.compare(resultStream);
System.out.println("Comparison complete! Results saved to: " + resultPath);
}
Τι Συμβαίνει Εδώ
- Η μέθοδος
compare()επεξεργάζεται όλα τα στοχευόμενα έγγραφα έναντι του πηγαίου. - Τα αποτελέσματα γράφονται απευθείας στην έξοδο ροής, διατηρώντας τη χρήση μνήμης χαμηλή.
- Λαμβάνετε ένα αντικείμενο
Pathπου δείχνει στο παραγόμενο αρχείο σύγκρισης.
Πλήρες Παράδειγμα Εργασίας
Συνδυάζοντας τα παραπάνω σε μια κλάση έτοιμη για παραγωγή:
import com.groupdocs.comparison.Comparer;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Path;
public class DocumentComparisonExample {
public static void compareMultipleDocuments() {
try (InputStream sourceStream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/SOURCE_WORD")) {
try (Comparer comparer = new Comparer(sourceStream)) {
// Add multiple target documents for comparison
try (InputStream target1Stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/TARGET1_WORD"),
InputStream target2Stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/TARGET2_WORD"),
InputStream target3Stream = new FileInputStream("YOUR_DOCUMENT_DIRECTORY/TARGET3_WORD")) {
comparer.add(target1Stream, target2Stream, target3Stream);
}
// Generate comparison results
try (OutputStream resultStream = new FileOutputStream("YOUR_OUTPUT_DIRECTORY/CompareMultipleDocumentsResult")) {
final Path resultPath = comparer.compare(resultStream);
System.out.println("Documents compared successfully! Check: " + resultPath);
}
}
} catch (Exception e) {
System.err.println("Error during document comparison: " + e.getMessage());
e.printStackTrace();
}
}
}
Σύγκριση Πολλαπλών Εγγράφων Java – Καλές Πρακτικές
Όταν συγκρίνετε πολλαπλά έγγραφα Java, τηρήστε τις παρακάτω οδηγίες:
- Μέγεθος Παρτίδας: Περιορίστε κάθε παρτίδα σύγκρισης σε μέγεθος που η JVM σας μπορεί να διαχειριστεί άνετα (10‑15 αρχεία είναι ένας καλός κανόνας).
- Buffer Ροής: Χρησιμοποιήστε
BufferedInputStreamμε buffer 8 KB–32 KB για βελτιωμένη απόδοση I/O. - Απομόνωση Σφαλμάτων: Τυλίξτε κάθε προσθήκη στόχου σε δικό του try‑catch ώστε ένα κατεστραμμένο αρχείο να μην διακόψει ολόκληρη τη παρτίδα.
- Καταγραφή: Καταγράψτε timestamps έναρξης/λήξης για κάθε ζεύγος εγγράφων ώστε να διευκολύνετε την ανάλυση απόδοσης.
Συνηθισμένα Προβλήματα και Λύσεις
Πρόβλημα 1: OutOfMemoryError με Μεγάλα Έγγραφα
Συμπτώματα: Η εφαρμογή καταρρέει με σφάλματα heap‑space.
Λύση: Αυξήστε το μέγεθος heap της JVM και εξετάστε την επεξεργασία εγγράφων σε μικρότερες παρτίδες:
java -Xmx2g -XX:+UseG1GC YourApplication
Πρόβλημα 2: Δικαιώματα Πρόσβασης Αρχείου
Συμπτώματα: FileNotFoundException ή σφάλματα άρνησης πρόσβασης.
Λύση: Επαληθεύστε τα δικαιώματα αρχείων και βεβαιωθείτε ότι η εφαρμογή σας μπορεί να διαβάσει τον φάκελο προέλευσης:
File sourceFile = new File("YOUR_DOCUMENT_DIRECTORY/SOURCE_WORD");
if (!sourceFile.canRead()) {
throw new IllegalStateException("Cannot read source file: " + sourceFile.getAbsolutePath());
}
Πρόβλημα 3: Κατεστραμμένες ή Μη Υποστηριζόμενες Μορφές Εγγράφων
Συμπτώματα: Η σύγκριση αποτυγχάνει με εξαιρέσεις σχετικές με μορφές.
Λύση: Επικυρώστε τις μορφές εγγράφων πριν την επεξεργασία:
// Always validate files before processing
private boolean isValidDocument(String filePath) {
try {
// Add format validation logic here
return new File(filePath).length() > 0;
} catch (Exception e) {
return false;
}
}
Συμβουλές Απόδοσης για Παραγωγική Χρήση
Διαχείριση Μνήμης
Όταν χειρίζεστε πολλαπλές ροές, κρατήστε τη χρήση μνήμης περιορισμένη:
- Χρησιμοποιήστε
BufferedInputStream– Τυλίξτε τις ροές αρχείων για καλύτερη απόδοση. - Ορίστε Κατάλληλα Μεγέθη Buffer – Buffers 8 KB–16 KB λειτουργούν καλά για μεγάλα έγγραφα.
- Παρακολουθήστε τη Μνήμη – Εργαλεία profiling βοηθούν στον εντοπισμό bottlenecks.
// More efficient file handling for large documents
try (BufferedInputStream sourceStream = new BufferedInputStream(
new FileInputStream("source.docx"), 16384)) { // 16KB buffer
// Your comparison logic here
}
Βέλτιστη Διαχείριση Αρχείων
// Example of using a larger buffer for very big files
try (BufferedInputStream sourceStream = new BufferedInputStream(
new FileInputStream("large-document.docx"), 32768)) { // 32KB buffer
// Process with increased buffer size
}
Συγχρονική Επεξεργασία
Για εργασίες παρτίδας, αξιοποιήστε τις βοηθητικές βιβλιοθήκες σύγχρονης Java:
ExecutorService executor = Executors.newFixedThreadPool(4);
// Process multiple comparison tasks in parallel
// Ensure thread‑safety of shared resources
Καλές Πρακτικές για Παραγωγική Χρήση
1. Ανθεκτική Διαχείριση Σφαλμάτων και Καταγραφή
Εφαρμόστε ολοκληρωμένη καταγραφή ώστε να μπορείτε να εντοπίζετε προβλήματα γρήγορα:
import java.util.logging.Logger;
import java.util.logging.Level;
private static final Logger logger = Logger.getLogger(DocumentComparisonExample.class.getName());
public void safeDocumentComparison() {
try {
// Your comparison logic
logger.info("Document comparison completed successfully");
} catch (Exception e) {
logger.log(Level.SEVERE, "Document comparison failed", e);
// Optionally retry or alert administrators
}
}
2. Διαχείριση Ρυθμίσεων
Αποφύγετε το σκληρό κωδικοποίηση διαδρομών· χρησιμοποιήστε μεταβλητές περιβάλλοντος ή αρχεία ρυθμίσεων:
String sourceDir = System.getProperty("document.source.dir", "default/path");
String outputDir = System.getProperty("document.output.dir", "default/output");
3. Επικύρωση και Καθαρισμός
Πάντα επικυρώνετε τις διαδρομές εισόδου πριν ανοίξετε ροές:
private void validateDocumentPath(String path) {
if (path == null || path.trim().isEmpty()) {
throw new IllegalArgumentException("Document path cannot be null or empty");
}
File file = new File(path);
if (!file.exists() || !file.isFile()) {
throw new IllegalArgumentException("Invalid document path: " + path);
}
}
Πραγματικές Περιπτώσεις Χρήσης
Νομική Ανασκόπηση Εγγράφων
Δικηγορικά γραφεία συγκρίνουν εκδόσεις συμβάσεων από διαφορετικά μέρη, παρακολουθούν αλλαγές σε προσχέδια και εξασφαλίζουν συμμόρφωση συγκρίνοντας τελικά έγγραφα με πρότυπα.
Τεκμηρίωση Λογισμικού
Ομάδες ανάπτυξης συγκρίνουν τεκμηρίωση API μεταξύ εκδόσεων, ελέγχουν τεχνικές προδιαγραφές από πολλούς συνεισφέροντες και διατηρούν συνεπή σύνολα τεκμηρίωσης.
Συμμόρφωση και Έλεγχος
Οργανισμοί επαληθεύουν κανονιστικά έγγραφα, παρακολουθούν αλλαγές πολιτικών και δημιουργούν αρχεία ελέγχου για τροποποιήσεις εγγράφων.
Οδηγός Επίλυσης Προβλημάτων
Προβλήματα Απόδοσης
- Πρόβλημα: Η σύγκριση διαρκεί πολύ.
- Λύσεις:
- Διαχωρίστε πολύ μεγάλα αρχεία σε ενότητες.
- Αυξήστε το heap της JVM (
-Xmx). - Ελέγξτε το I/O του δίσκου – SSDs βελτιώνουν την ταχύτητα.
Προβλήματα Μνήμης
- Πρόβλημα: Η εφαρμογή εξαντλεί τη μνήμη.
- Λύσεις:
- Αυξήστε το μέγεθος heap (
-Xmx). - Επεξεργαστείτε τα έγγραφα σε μικρότερες παρτίδες.
- Χρησιμοποιήστε μεγαλύτερα buffers για τις ροές.
- Αυξήστε το μέγεθος heap (
Προβλήματα Πρόσβασης Αρχείου
- Πρόβλημα: Δεν είναι δυνατή η ανάγνωση των αρχείων προέλευσης ή στόχου.
- Λύσεις:
- Επαληθεύστε τα δικαιώματα αρχείων.
- Βεβαιωθείτε ότι τα αρχεία δεν είναι κλειδωμένα από άλλη διεργασία.
- Χρησιμοποιήστε απόλυτες διαδρομές για αποφυγή σύγχυσης σχετικών διαδρομών.
Συχνές Ερωτήσεις
Ε: Μπορώ να συγκρίνω έγγραφα εκτός των Word;
Α: Απόλυτα! Το GroupDocs.Comparison υποστηρίζει PDF, Excel, PowerPoint και απλό κείμενο. Η προσέγγιση με ροές λειτουργεί σταθερά σε όλες τις υποστηριζόμενες μορφές.
Ε: Ποιος είναι ο μέγιστος αριθμός εγγράφων που μπορώ να συγκρίνω ταυτόχρονα;
Α: Δεν υπάρχει σκληρό όριο, αλλά οι πρακτικοί περιορισμοί είναι η μνήμη, η CPU και ο χρόνος επεξεργασίας. Η σύγκριση 10‑15 εγγράφων ταυτόχρονα είναι τυπική· μεγαλύτερες παρτίδες πρέπει να χωρίζονται.
Ε: Πώς να διαχειριστώ τα σφάλματα σύγκρισης με χάρη;
Α: Χρησιμοποιήστε στρωματοποιημένη διαχείριση εξαιρέσεων:
try {
// Comparison logic
} catch (SecurityException e) {
logger.warn("Access denied for file: " + fileName);
} catch (IOException e) {
logger.error("I/O error during comparison", e);
} catch (Exception e) {
logger.error("Unexpected error during comparison", e);
}
Ε: Μπορώ να προσαρμόσω τον τρόπο που επισημαίνονται οι διαφορές στο αποτέλεσμα;
Α: Ναι. Το GroupDocs.Comparison προσφέρει επιλογές στυλ για εισαγόμενα, διαγραμμένα και τροποποιημένα τμήματα, καθώς και χρωματικά σχήματα και ενσωμάτωση μεταδεδομένων.
Ε: Είναι αυτή η προσέγγιση κατάλληλη για πραγματικό‑χρόνο σύγκριση εγγράφων;
Α: Η σύγκριση με ροές είναι ιδανική για σενάρια χαμηλής καθυστέρησης λόγω του μικρού αποτυπώματος μνήμης. Για πραγματικά ζωντανή συνεργατική επεξεργασία, συνδυάστε τη με caching και τεχνικές incremental diff.
Ε: Πώς να χειριστώ πολύ μεγάλα έγγραφα (100 MB+);
Α:
- Αυξήστε το heap της JVM (
-Xmx). - Χρησιμοποιήστε μεγαλύτερα buffers ροών (32 KB ή περισσότερο).
- Σκεφτείτε το διαχωρισμό του εγγράφου σε ενότητες.
- Παρακολουθήστε τη χρήση μνήμης με εργαλεία profiling.
Συμπέρασμα
Τώρα έχετε μια στέρεη βάση για την υλοποίηση πώς να χρησιμοποιήσετε το GroupDocs για σύγκριση εγγράφων Java με ροές. Αυτή η προσέγγιση σας δίνει τη δυνατότητα να διαχειρίζεστε μεγάλα αρχεία αποδοτικά, διατηρώντας τον κώδικά σας καθαρό και συντηρήσιμο.
Κύρια Σημεία
- Η σύγκριση με ροές είναι ιδανική για μνήμη‑αποδοτική επεξεργασία μεγάλων εγγράφων.
- Χρησιμοποιήστε try‑with‑resources για αυτόματη εκκαθάριση.
- Εφαρμόστε ανθεκτική διαχείριση σφαλμάτων, επικύρωση και καταγραφή για παραγωγική ετοιμότητα.
- Ρυθμίστε την απόδοση ανάλογα με τα μεγέθη εγγράφων και το φορτίο εργασίας σας.
Επόμενα Βήματα
- Εξερευνήστε Προχωρημένες Ρυθμίσεις – Στυλ, μεταδεδομένα και επιλογές μορφής εξόδου.
- Ενσωματώστε σε Web Υπηρεσίες – Δημιουργήστε REST endpoints που δέχονται ανεβασμένες ροές.
- Αυτοματοποιήστε Ροές Εργασίας – Συνδυάστε με pipelines CI/CD για συνεχή επαλήθευση εγγράφων.
- Προφίλ και Βελτιστοποίηση – Χρησιμοποιήστε Java Flight Recorder ή VisualVM για λεπτομερή βελτιστοποίηση.
Ξεκινήστε την Κατασκευή Σήμερα: Προσαρμόστε τα παραδείγματα κώδικα στο έργο σας, δοκιμάστε με πραγματικά έγγραφα και επαναλάβετε. Ο καλύτερος τρόπος για να κυριαρχήσετε τη σύγκριση εγγράφων είναι η εφαρμογή αυτών των προτύπων στις προκλήσεις που αντιμετωπίζετε.
Σχετικοί Πόροι:
- GroupDocs.Comparison Documentation
- API Reference
- Download Latest Version
- Support Forum
- Purchase Options
- Free Trial
- Temporary License
Τελευταία Ενημέρωση: 2026-03-22
Δοκιμασμένο Με: GroupDocs.Comparison 25.2
Συγγραφέας: GroupDocs