Confrontare i file Word in modo programmatico è una necessità frequente per i servizi backend che devono rilevare modifiche, generare rapporti di revisione o far rispettare le politiche dei documenti. GroupDocs.Comparison Cloud SDK for Node.js fornisce un’API potente che semplifica questo compito per le applicazioni Node.js. In questa guida imparerai come configurare l’SDK, eseguire un confronto completo di due file DOCX, utilizzare i comandi cURL equivalenti, comprendere ogni parte dell’implementazione e seguire le raccomandazioni di best‑practice per mantenere la tua soluzione affidabile e sicura.
Esempio di codice completo: Confronta documenti Word in Node.JS
Il seguente esempio dimostra un flusso di lavoro completo end‑to‑end per confrontare due documenti Word utilizzando il 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);
}
})();
Nota: Questo esempio di codice dimostra la funzionalità principale. Prima di usarlo nel tuo progetto, assicurati di aggiornare tutti i percorsi dei file e i valori di configurazione per corrispondere al tuo ambiente reale, verifica che tutte le dipendenze richieste siano installate correttamente e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.
Esegui il confronto dei documenti con cURL e l’API REST
Se preferisci un approccio indipendente dal linguaggio, puoi ottenere lo stesso risultato con semplici richieste HTTP. Di seguito sono riportati i comandi cURL essenziali.
- Autenticati e ottieni un token di accesso
SostituisciYOUR_CLIENT_IDeYOUR_CLIENT_SECRETcon le tue credenziali.
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"
- Carica il file DOCX di origine
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"
- Carica il file DOCX di destinazione
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"
- Esegui l’operazione di confronto
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"
}'
- Scarica il file di confronto risultante
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/comparison_result.docx" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o comparison_result.docx
Per ulteriori dettagli sui payload di richiesta e sui formati di risposta, consulta la documentazione API ufficiale.
Comprendere il confronto dei documenti Word in codice Node.JS
Di seguito è riportata una suddivisione passo‑passo dell’esempio completo:
- Importa SDK e moduli Node.js
const GroupDocsComparisonCloud = require("@groupdocs/comparison-cloud");
const fs = require("fs");
const path = require("path");
Il namespace GroupDocsComparisonCloud fornisce l’accesso a tutte le classi API.
- Crea configurazione con credenziali client
const config = new GroupDocsComparisonCloud.Configuration(clientId, clientSecret);
Questo oggetto autentica ogni chiamata API successiva.
- Istanziare CompareApi e StorageApi
const compareApi = new GroupDocsComparisonCloud.CompareApi(config);
const storageApi = new GroupDocsComparisonCloud.StorageApi(config);
CompareApi gestisce il confronto, mentre StorageApi gestisce il caricamento e l’eliminazione dei file. Vedi il riferimento API per i dettagli dei metodi.
- Carica i file DOCX di origine e di destinazione
const uploadSourceReq = new GroupDocsComparisonCloud.UploadFileRequest({
path: sourceFileName,
file: sourceData
});
await storageApi.uploadFile(uploadSourceReq);
Lo stesso schema viene ripetuto per il file di destinazione.
- Configura CompareOptions ed esegui il confronto
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 ti consente di perfezionare l’operazione (ad esempio, generare una pagina di riepilogo). L’oggetto risultato contiene il percorso al documento di confronto generato.
- Pulire i file temporanei (opzionale)
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: sourceFileName }));
await storageApi.deleteFile(new GroupDocsComparisonCloud.DeleteFileRequest({ path: targetFileName }));
Rimuovere gli originali caricati mantiene l’archiviazione ordinata.
Prerequisiti e configurazione per GroupDocs.Comparison
- Versione Node.js - Assicurati di eseguire Node 14 o versioni successive.
- Ottieni le credenziali client - Registrati sul portale GroupDocs Cloud per ottenere
clientIdeclientSecret. - Installa l’SDK
npm install groupdocs-comparison-cloud
- (Facoltativo) Scarica il progetto di esempio - Puoi clonare il repository dalla pagina GitHub.
- Configura il tuo ambiente - Imposta le credenziali come variabili d’ambiente o sostituisci i segnaposto nel codice.
Per un elenco completo di binari scaricabili, consulta la pagina di download.
Best practice per un confronto efficiente di documenti Word
- Convalida i file di input - Verifica la dimensione e il formato del file prima di caricarlo per evitare chiamate API non necessarie.
- Riutilizza le sessioni di archiviazione - Carica i file una sola volta e riutilizza i loro percorsi per più confronti per ridurre la latenza.
- Abilita la pagina di riepilogo solo quando necessario - Generare una pagina di riepilogo aggiunge tempo di elaborazione; disabilitala per controlli di diff semplici.
- Gestisci i documenti di grandi dimensioni in modo asincrono - Per i file DOCX più grandi di 10 MB, considera il polling dello stato del lavoro invece di attendere in modo sincrono.
- Proteggi le credenziali - Memorizza
clientIdeclientSecretin variabili d’ambiente o in un gestore di segreti; non inserirli mai direttamente nel codice.
Conclusione
Confrontare i documenti Word in Node.JS diventa semplice con il GroupDocs.Comparison Cloud SDK for Node.js. Seguendo i passaggi di installazione, utilizzando l’esempio di codice fornito e, facoltativamente, sfruttando l’API REST con cURL, è possibile integrare un confronto documenti robusto in qualsiasi servizio backend. Ricorda di proteggere le credenziali, pulire i file temporanei e ottimizzare le opzioni di confronto per le prestazioni. Per le distribuzioni in produzione è necessaria una versione con licenza; i dettagli sui prezzi sono disponibili nella pagina del prodotto, e puoi ottenere una licenza temporanea per la valutazione dalla pagina della licenza temporanea. Inizia a sperimentare oggi e porta capacità affidabili di differenziazione dei documenti nelle tue applicazioni Node.js.
Domande frequenti
Come confronto documenti Word in Node.JS senza scrivere codice?
È possibile utilizzare la stessa operazione tramite chiamate REST. Gli esempi cURL in questo articolo mostrano la sequenza esatta: autenticazione, caricamento dei file, chiamata all’endpoint di confronto e download del risultato.Quali formati di file sono supportati per il confronto?
L’SDK supporta DOCX, DOC, ODT, RTF, e TXT tra gli altri. Tutti i nomi dei formati non distinguono tra maiuscole e minuscole, ma sono documentati in maiuscolo (ad es., DOCX) nella riferimento API.Posso confrontare più di due documenti contemporaneamente?
Sì. L’arraytargetFilesinCompareOptionspuò contenere più oggettiFileInfo, consentendo di confrontare un file di origine con diversi target in una singola richiesta.È possibile personalizzare lo stile visivo del risultato del confronto?
L’SDK offre impostazioni comeshowDeletedContent,showInsertedContentegenerateSummaryPage. Regola queste proprietà inCompareOptionsper controllare come vengono evidenziate le modifiche. Consulta la documentazione ufficiale per l’elenco completo delle opzioni.
