Porównywanie plików Word programowo jest częstym wymogiem dla usług backendowych, które muszą wykrywać zmiany, generować raporty z rewizji lub egzekwować polityki dokumentów. GroupDocs.Comparison Cloud SDK for Node.js zapewnia potężne API, które upraszcza to zadanie dla aplikacji Node.js. W tym przewodniku dowiesz się, jak skonfigurować SDK, przeprowadzić pełne porównanie dwóch plików DOCX, używać równoważnych poleceń cURL, zrozumieć każdy element implementacji oraz stosować zalecenia najlepszych praktyk, aby utrzymać rozwiązanie niezawodne i bezpieczne.

Pełny przykład kodu: Porównaj dokumenty Word w Node.JS

Poniższy przykład demonstruje pełny przepływ pracy end‑to‑end porównywania dwóch dokumentów Word przy użyciu GroupDocs.Comparison Cloud SDK for 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);
    }
})();

Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś wszystkie ścieżki plików i wartości konfiguracyjne, aby odpowiadały rzeczywistemu środowisku, sprawdź, czy wszystkie wymagane zależności są prawidłowo zainstalowane, i dokładnie przetestuj w środowisku deweloperskim. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.

Wykonaj porównanie dokumentów przy użyciu cURL i REST API

Jeśli wolisz podejście niezależne od języka, możesz osiągnąć ten sam wynik przy użyciu zwykłych żądań HTTP. Poniżej znajdują się niezbędne polecenia cURL.

  1. Uwierzytelnij i uzyskaj token dostępu
    Zastąp YOUR_CLIENT_ID i YOUR_CLIENT_SECRET swoimi danymi uwierzytelniającymi.
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. Prześlij plik źródłowy DOCX
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. Prześlij docelowy plik DOCX
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. Wykonaj operację porównania
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. Pobierz wynikowy plik porównania
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/comparison_result.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o comparison_result.docx

Aby uzyskać więcej informacji na temat ładunków żądań i formatów odpowiedzi, zobacz oficjalną dokumentację API.

Zrozumienie porównywania dokumentów Word w kodzie Node.JS

Poniżej znajduje się szczegółowy opis krok po kroku pełnego przykładu:

  1. Importuj SDK i moduły Node.js
const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");

Przestrzeń nazw GroupDocsComparisonCloud zapewnia dostęp do wszystkich klas API.

  1. Utwórz konfigurację z poświadczeniami klienta
const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);

Ten obiekt uwierzytelnia każde kolejne wywołanie API.

  1. Utwórz instancję CompareApi i StorageApi
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);

CompareApi obsługuje porównanie, natomiast StorageApi zarządza przesyłaniem i usuwaniem plików. Zobacz odniesienie do API po szczegóły metod.

  1. Prześlij plik źródłowy i docelowy DOCX
const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
    path: sourceFileName,
    file: sourceData
});
await storageApi.uploadFile(uploadSourceReq);

Ten sam wzorzec jest powtórzony dla pliku docelowego.

  1. Skonfiguruj CompareOptions i uruchom porównanie
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 pozwala precyzyjnie dostroić operację (np. wygenerować stronę podsumowującą). Obiekt wynikowy zawiera ścieżkę do wygenerowanego dokumentu porównania.

  1. Czyszczenie tymczasowych plików (opcjonalnie)
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));

Usuwanie przesłanych oryginałów utrzymuje porządek w magazynie.

Wymagania wstępne i konfiguracja dla GroupDocs.Comparison

  1. Wersja Node.js - Upewnij się, że używasz Node 14 lub nowszego.
  2. Uzyskaj poświadczenia klienta - Zarejestruj się w portalu GroupDocs Cloud, aby uzyskać clientId i clientSecret.
  3. Zainstaluj SDK
npm install groupdocs-comparison-cloud
  1. (Opcjonalnie) Pobierz przykładowy projekt - Możesz sklonować repozytorium ze strony GitHub.
  2. Skonfiguruj swoje środowisko - Ustaw poświadczenia jako zmienne środowiskowe lub zamień symbole zastępcze w kodzie.

Aby zobaczyć pełną listę dostępnych plików binarnych, zobacz stronę pobierania.

Najlepsze praktyki efektywnego porównywania dokumentów Word

  • Sprawdź pliki wejściowe - Sprawdź rozmiar i format pliku przed przesłaniem, aby uniknąć niepotrzebnych wywołań API.
  • Ponowne użycie sesji przechowywania - Prześlij pliki raz i ponownie użyj ich ścieżek w wielu porównaniach, aby zmniejszyć opóźnienia.
  • Włącz stronę podsumowania tylko w razie potrzeby - Generowanie strony podsumowania zwiększa czas przetwarzania; wyłącz ją przy prostych sprawdzeniach różnic.
  • Obsługa dużych dokumentów asynchronicznie - Dla plików DOCX większych niż 10 MB rozważ odpytywanie statusu zadania zamiast czekania synchronicznego.
  • Zabezpiecz poświadczenia - Przechowuj clientId i clientSecret w zmiennych środowiskowych lub menedżerze tajemnic; nigdy nie zapisuj ich na stałe w kodzie.

Wnioski

Porównywanie dokumentów Word w Node.JS staje się proste dzięki GroupDocs.Comparison Cloud SDK for Node.js. Postępując zgodnie z krokami instalacji, używając dostarczonego przykładu kodu oraz opcjonalnie korzystając z REST API z cURL, możesz zintegrować solidne porównywanie dokumentów z dowolną usługą backendową. Pamiętaj, aby zabezpieczyć swoje dane uwierzytelniające, usuwać pliki tymczasowe i dostosowywać opcje porównywania w celu uzyskania lepszej wydajności. W środowiskach produkcyjnych potrzebna będzie licencjonowana wersja; szczegóły cenowe są dostępne na stronie produktu, a tymczasową licencję do oceny możesz uzyskać ze strony tymczasowej licencji. Rozpocznij eksperymenty już dziś i wprowadź niezawodne możliwości różnicowania dokumentów do swoich aplikacji Node.js.

FAQs

  • Jak porównać dokumenty Word w Node.JS bez pisania kodu?
    Możesz użyć tej samej operacji za pomocą wywołań REST. Przykłady cURL w tym artykule pokazują dokładną kolejność: uwierzytelnienie, przesłanie plików, wywołanie endpointu porównania i pobranie wyniku.

  • Jakie formaty plików są obsługiwane przy porównywaniu?
    SDK obsługuje DOCX, DOC, ODT, RTF, oraz TXT oraz inne. Wszystkie nazwy formatów nie rozróżniają wielkości liter, ale są dokumentowane wielkimi literami (np. DOCX) w referencji API.

  • Czy mogę porównać więcej niż dwa dokumenty jednocześnie?
    Tak. Tablica targetFiles w CompareOptions może zawierać wiele obiektów FileInfo, co pozwala porównać plik źródłowy z kilkoma plikami docelowymi w jednym żądaniu.

  • Czy istnieje sposób na dostosowanie stylu wizualnego wyniku porównania?
    SDK oferuje ustawienia takie jak showDeletedContent, showInsertedContent i generateSummaryPage. Dostosuj te właściwości w CompareOptions, aby kontrolować sposób podświetlania zmian. Odwołaj się do oficjalnej dokumentacji po pełną listę opcji.

Czytaj więcej