Das programmatische Vergleichen von Word‑Dateien ist eine häufige Anforderung für Backend‑Dienste, die Änderungen erkennen, Revisionsberichte erstellen oder Dokumentenrichtlinien durchsetzen müssen. GroupDocs.Comparison Cloud SDK for Node.js bietet eine leistungsstarke API, die diese Aufgabe für Node.js‑Anwendungen vereinfacht. In diesem Leitfaden lernen Sie, wie Sie das SDK einrichten, einen vollständigen Vergleich von zwei DOCX‑Dateien durchführen, äquivalente cURL‑Befehle verwenden, jeden Teil der Implementierung verstehen und bewährte Praxisempfehlungen befolgen, um Ihre Lösung zuverlässig und sicher zu halten.

Vollständiges Codebeispiel: Word-Dokumente in Node.JS vergleichen

Das folgende Beispiel demonstriert einen vollständigen End‑to‑End‑Workflow zum Vergleichen zweier Word‑Dokumente mit dem GroupDocs.Comparison Cloud SDK für Node.js.

const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

// ==== Authentication =========================================================
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";

const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

// ==== File definitions =======================================================
const sourceFileName = "document1.docx";
const targetFileName = "document2.docx";
const resultFileName = "comparison_result.docx";

const sourceFilePath = path.resolve(__dirname, sourceFileName);
const targetFilePath = path.resolve(__dirname, targetFileName);

// ==== Main async function ====================================================
(async () => {
    try {
        // ---- Upload source document -----------------------------------------
        const sourceData = fs.readFileSync(sourceFilePath);
        const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: sourceFileName,
            file: sourceData
        });
        await storageApi.uploadFile(uploadSourceReq);

// ---- Upload target document -----------------------------------------
        const targetData = fs.readFileSync(targetFilePath);
        const uploadTargetReq = new GroupDocsComparisonCloud.UploadFileRequest({
            path: targetFileName,
            file: targetData
        });
        await storageApi.uploadFile(uploadTargetReq);

// ---- Prepare comparison options --------------------------------------
        const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
            sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
            targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
            outputPath: resultFileName,
            // optional: you can set settings like generateSummaryPage, showDeletedContent, etc.
        });

const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
            compareOptions: compareOptions
        });

// ---- Execute comparison -----------------------------------------------
        const compareResult = await compareApi.compareDocument(compareRequest);
        console.log("Comparison completed. Result stored at:", compareResult.path);

// ---- (Optional) Clean up uploaded files --------------------------------
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
        await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));
        // Note: result file remains in storage; you can download it if needed.
    } catch (error) {
        console.error("Error during comparison:", error);
    }
})();

Hinweis: Dieses Codebeispiel demonstriert die Kernfunktionalität. Bevor Sie es in Ihrem Projekt verwenden, stellen Sie sicher, dass Sie alle Dateipfade und Konfigurationswerte an Ihre tatsächliche Umgebung anpassen, überprüfen Sie, dass alle erforderlichen Abhängigkeiten ordnungsgemäß installiert sind, und testen Sie gründlich in Ihrer Entwicklungsumgebung. Wenn Sie auf Probleme stoßen, lesen Sie bitte die offizielle Dokumentation oder wenden Sie sich an das Support-Team für Unterstützung.

Dokumentvergleich mit cURL und der REST-API durchführen

Wenn Sie einen sprachunabhängigen Ansatz bevorzugen, können Sie dasselbe Ergebnis mit einfachen HTTP‑Anfragen erzielen. Nachfolgend finden Sie die wesentlichen cURL‑Befehle.

  1. Authentifizieren und ein Zugriffstoken erhalten
    Ersetzen Sie YOUR_CLIENT_ID und YOUR_CLIENT_SECRET durch Ihre Anmeldeinformationen.
curl -X POST "https://api.groupdocs.cloud/v2.0/oauth2/token" \
     -H "Content-Type: application/x-www-form-urlencoded" \
     -d "grant_type=client_credentials&client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET"
  1. Laden Sie die Quell‑DOCX‑Datei hoch
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document1.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document1.docx"
  1. Laden Sie die Ziel‑DOCX‑Datei hoch
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/document2.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary "@path/to/document2.docx"
  1. Führen Sie die Vergleichsoperation aus
curl -X POST "https://api.groupdocs.cloud/v2.0/comparison/compare" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "sourceFile": { "filePath": "document1.docx" },
           "targetFiles": [{ "filePath": "document2.docx" }],
           "outputPath": "comparison_result.docx"
         }'
  1. Laden Sie die resultierende Vergleichsdatei herunter
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/comparison_result.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o comparison_result.docx

Weitere Details zu Anforderungs‑Payloads und Antwortformaten finden Sie in der offiziellen API‑Dokumentation.

Verstehen des Vergleichs von Word-Dokumenten in Node.JS-Code

Im Folgenden finden Sie eine schrittweise Aufschlüsselung des vollständigen Beispiels:

  1. SDK und Node.js-Module importieren
const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

Der GroupDocsComparisonCloud Namespace bietet Zugriff auf alle API-Klassen.

  1. Konfiguration mit Client-Anmeldeinformationen erstellen
const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);

Dieses Objekt authentifiziert jeden nachfolgenden API-Aufruf.

  1. Instanziieren Sie CompareApi und StorageApi
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

CompareApi führt Vergleiche durch, während StorageApi Datei‑Uploads und Löschungen verwaltet. Siehe die API‑Referenz für Details zu den Methoden.

  1. Hochladen von Quell- und Ziel‑DOCX‑Dateien
const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
    path: sourceFileName,
    file: sourceData
});
await storageApi.uploadFile(uploadSourceReq);

Das gleiche Muster wird für die Zieldatei wiederholt.

  1. Configure CompareOptions und führen Sie den Vergleich aus
const compareOptions = new GroupDocsComparisonCloud.CompareOptions({
    sourceFile: new GroupDocsComparisonCloud.FileInfo({ filePath: sourceFileName }),
    targetFiles: [new GroupDocsComparisonCloud.FileInfo({ filePath: targetFileName })],
    outputPath: resultFileName,
});
const compareRequest = new GroupDocsComparisonCloud.CompareDocumentRequest({
    compareOptions: compareOptions
});
const compareResult = await compareApi.compareDocument(compareRequest);

CompareOptions ermöglicht es Ihnen, den Vorgang fein abzustimmen (z. B. eine Zusammenfassungsseite zu erzeugen). Das Ergebnisobjekt enthält den Pfad zum erzeugten Vergleichsdokument.

  1. Temporäre Dateien bereinigen (optional)
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));

Das Entfernen der hochgeladenen Originaldateien hält den Speicher ordentlich.

Voraussetzungen und Einrichtung für GroupDocs.Comparison

  1. Node.js-Version – Stellen Sie sicher, dass Sie Node 14 oder neuer verwenden.
  2. Client‑Anmeldeinformationen erhalten – Registrieren Sie sich im GroupDocs Cloud‑Portal, um clientId und clientSecret zu erhalten.
  3. SDK installieren
npm install groupdocs-comparison-cloud
  1. (Optional) Laden Sie das Beispielprojekt herunter - Sie können das Repository von der GitHub-Seite klonen.
  2. Konfigurieren Sie Ihre Umgebung - Setzen Sie die Anmeldeinformationen als Umgebungsvariablen oder ersetzen Sie die Platzhalter im Code.

Für eine vollständige Liste der herunterladbaren Binärdateien siehe die Download‑Seite.

Best Practices für einen effizienten Vergleich von Word-Dokumenten

  • Eingabedateien validieren - Überprüfen Sie Dateigröße und -format vor dem Hochladen, um unnötige API‑Aufrufe zu vermeiden.
  • Speichersitzungen wiederverwenden - Laden Sie Dateien einmal hoch und verwenden Sie deren Pfade für mehrere Vergleiche, um die Latenz zu reduzieren.
  • Zusammenfassungsseite nur bei Bedarf aktivieren - Das Erzeugen einer Zusammenfassungsseite erhöht die Verarbeitungszeit; deaktivieren Sie sie für einfache Diff‑Prüfungen.
  • Große Dokumente asynchron verarbeiten - Für DOCX‑Dateien größer als 10 MB sollten Sie den Job‑Status abfragen, anstatt synchron zu warten.
  • Anmeldeinformationen sichern - Speichern Sie clientId und clientSecret in Umgebungsvariablen oder einem Geheimnis‑Manager; codieren Sie sie niemals fest ein.

Fazit

Das Vergleichen von Word‑Dokumenten in Node.JS wird mit dem GroupDocs.Comparison Cloud SDK for Node.js unkompliziert. Wenn Sie den Installationsschritten folgen, das bereitgestellte Codebeispiel verwenden und optional die REST‑API mit cURL nutzen, können Sie eine robuste Dokumentenvergleichsfunktion in jeden Backend‑Dienst integrieren. Denken Sie daran, Ihre Anmeldeinformationen zu sichern, temporäre Dateien zu bereinigen und die Vergleichsoptionen für die Leistung zu optimieren. Für Produktionsbereitstellungen benötigen Sie eine lizenzierte Version; Preisdetails finden Sie auf der Produktseite, und Sie können eine temporäre Lizenz für die Evaluierung von der temporäre Lizenzseite erhalten. Beginnen Sie noch heute mit dem Experimentieren und bringen Sie zuverlässige Dokumenten‑Diff‑Funktionen in Ihre Node.js‑Anwendungen.

FAQs

  • Wie vergleiche ich Word-Dokumente in Node.JS, ohne Code zu schreiben?
    Sie können dieselbe Operation über REST-Aufrufe verwenden. Die cURL‑Beispiele in diesem Artikel zeigen die genaue Reihenfolge: Authentifizierung, Hochladen von Dateien, Aufruf des Compare‑Endpunkts und Herunterladen des Ergebnisses.

  • Welche Dateiformate werden für den Vergleich unterstützt?
    Das SDK unterstützt DOCX, DOC, ODT, RTF, und TXT unter anderem. Alle Formatnamen sind nicht case‑sensitiv, aber sie werden in der Dokumentation in Großbuchstaben (z. B. DOCX) in der API‑Referenz angegeben.

  • Kann ich mehr als zwei Dokumente gleichzeitig vergleichen?
    Ja. Das targetFiles-Array in CompareOptions kann mehrere FileInfo-Objekte enthalten, sodass Sie eine Quelldatei gegen mehrere Zieldateien in einer einzigen Anforderung vergleichen können.

  • Gibt es eine Möglichkeit, den visuellen Stil des Vergleichsergebnisses anzupassen?
    Das SDK bietet Einstellungen wie showDeletedContent, showInsertedContent und generateSummaryPage. Passen Sie diese Eigenschaften in CompareOptions an, um zu steuern, wie Änderungen hervorgehoben werden. Weitere Informationen finden Sie in der offiziellen Dokumentation für die vollständige Liste der Optionen.

Mehr lesen