Aggiungere commenti rapidi direttamente sui documenti Word è una necessità comune per i flussi di lavoro di revisione collaborativa. GroupDocs.Annotation Cloud SDK for Node.JS ti consente di aggiungere annotazioni ricche in modo programmatico senza lasciare l’ambiente del tuo server. In questa guida ti mostreremo come creare Sticky Notes sulle pagine Word in Node.JS, coprendo l’installazione, una panoramica dettagliata, un esempio di codice completo e le chiamate cURL equivalenti.

Configurazione di GroupDocs.Annotation Cloud SDK for Node.JS

Prima di iniziare, assicurati di avere:

  • Node.js 14+ e npm installati
  • Un account GroupDocs cloud con clientId e clientSecret
  • Accesso al file sorgente DOCX che desideri annotare

Installa l’SDK tramite npm:

npm install groupdocs-annotation-cloud

Scarica il pacchetto più recente dalla pagina di rilascio ufficiale se preferisci un’installazione manuale: GroupDocs.Annotation Cloud SDK for Node.JS Download.

Crea un oggetto di configurazione con le tue credenziali (estratto dall’esempio completo):

const { Configuration } = require("@groupdocs.annotation-cloud");

const config = new Configuration({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET"
});

Con l’SDK installato e le credenziali pronte, possiamo passare all’implementazione.

Crea note adesive nelle pagine Word in Node.JS: Guida passo passo

In questo tutorial creeremo Sticky Notes sulle pagine di Word in Node.JS utilizzando le classi di annotazione dell’SDK.

Passo 1: Inizializzare l’API di Annotazione

Per prima cosa, importa le classi necessarie e crea un’istanza di AnnotateApi.

const { AnnotateApi, models } = require("@groupdocs.annotation-cloud");
const annotateApi = new AnnotateApi(config);

Passo 2: Definisci i file di origine e destinazione

Specifica il DOCX di input e il percorso per l’output annotato.

const inputFilePath = "sample.docx";
const outputFilePath = "sample_annotated.docx";

const fileInfo = new models.FileInfo();
fileInfo.filePath = inputFilePath;

Passo 3: Imposta la posizione della nota adesiva

Crea un Rectangle che determina dove la nota adesiva apparirà nella pagina 1.

const rect = new models.Rectangle();
rect.x = 100;      // distance from left edge (points)
rect.y = 100;      // distance from top edge (points)
rect.width = 200;  // width of the sticky note
rect.height = 100; // height of the sticky note

Passo 4: Crea l’oggetto di annotazione Sticky Note

Configura il tipo di annotazione, il numero di pagina, il rettangolo, il testo e il colore di sfondo.

const stickyNote = new models.AnnotationInfo();
stickyNote.annotationType = "StickyNote";
stickyNote.pageNumber = 1;
stickyNote.rect = rect;
stickyNote.text = "This is a sticky note added via GroupDocs.Annotation Cloud SDK.";
stickyNote.color = "FFFF00"; // Yellow background

Passo 5: Esegui la richiesta di annotazione

Raccogli le opzioni della richiesta e chiama il metodo annotate.

const annotateOptions = new models.AnnotateOptions();
annotateOptions.fileInfo = fileInfo;
annotateOptions.annotations = [stickyNote];
annotateOptions.outputPath = outputFilePath;

(async () => {
    try {
        const request = new models.AnnotateRequest(annotateOptions);
        const response = await annotateApi.annotate(request);
        console.log("Sticky note created successfully. Output saved to:", response.path);
    } catch (err) {
        console.error("Failed to create sticky note:", err);
    }
})();

Esempio completo funzionante per creare note adesive su pagine Word in Node.JS

Il seguente esempio dimostra l’implementazione completa per creare Note adesive su pagine Word in Node.JS utilizzando GroupDocs.Annotation Cloud SDK.

const { AnnotateApi, Configuration, models } = require("@groupdocs.annotation-cloud");

// -----------------------------------------------------------------------------
// Configuration – replace with your actual GroupDocs credentials
// -----------------------------------------------------------------------------
const config = new Configuration({
    clientId: "YOUR_CLIENT_ID",
    clientSecret: "YOUR_CLIENT_SECRET"
});

const annotateApi = new AnnotateApi(config);

// -----------------------------------------------------------------------------
// Define input and output files
// -----------------------------------------------------------------------------
const inputFilePath = "sample.docx";
const outputFilePath = "sample_annotated.docx";

// -----------------------------------------------------------------------------
// Build FileInfo object for the source document
// -----------------------------------------------------------------------------
const fileInfo = new models.FileInfo();
fileInfo.filePath = inputFilePath;

// -----------------------------------------------------------------------------
// Define rectangle (position & size) for the sticky note on page 1
// -----------------------------------------------------------------------------
const rect = new models.Rectangle();
rect.x = 100;      // distance from left edge (points)
rect.y = 100;      // distance from top edge (points)
rect.width = 200;  // width of the sticky note
rect.height = 100; // height of the sticky note

// -----------------------------------------------------------------------------
// Create the sticky‑note annotation
// -----------------------------------------------------------------------------
const stickyNote = new models.AnnotationInfo();
stickyNote.annotationType = "StickyNote";
stickyNote.pageNumber = 1;
stickyNote.rect = rect;
stickyNote.text = "This is a sticky note added via GroupDocs.Annotation Cloud SDK.";
stickyNote.color = "FFFF00"; // Yellow background

// -----------------------------------------------------------------------------
// Assemble the annotate request options
// -----------------------------------------------------------------------------
const annotateOptions = new models.AnnotateOptions();
annotateOptions.fileInfo = fileInfo;
annotateOptions.annotations = [stickyNote];
annotateOptions.outputPath = outputFilePath;

// -----------------------------------------------------------------------------
// Execute the request
// -----------------------------------------------------------------------------
(async () => {
    try {
        const request = new models.AnnotateRequest(annotateOptions);
        const response = await annotateApi.annotate(request);
        console.log("Sticky note created successfully. Output saved to:", response.path);
    } catch (err) {
        console.error("Failed to create sticky note:", err);
    }
})();

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 correttamente installate e testa accuratamente nel tuo ambiente di sviluppo. Se incontri problemi, consulta la documentazione ufficiale o contatta il team di supporto per assistenza.

Aggiunta di annotazioni Sticky Note con cURL e l’API REST

L’API REST offre la stessa funzionalità senza scrivere codice. Di seguito sono le chiamate cURL richieste.

Per prima cosa, ottieni un token di accesso:

curl -X POST "https://api.groupdocs.cloud/v2.0.0/auth/token" \
     -H "Content-Type: application/json" \
     -d '{"client_id":"YOUR_CLIENT_ID","client_secret":"YOUR_CLIENT_SECRET"}'

Carica il file DOCX di origine (sostituisci YOUR_ACCESS_TOKEN con il token del passaggio precedente):

curl -X PUT "https://api.groupdocs.cloud/v2.0.0/storage/file/sample.docx" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/octet-stream" \
     --data-binary @sample.docx

Crea l’annotazione nota adesiva:

curl -X POST "https://api.groupdocs.cloud/v2.0.0/annotation/annotate" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -H "Content-Type: application/json" \
     -d '{
           "fileInfo": { "filePath": "sample.docx" },
           "annotations": [
               {
                   "annotationType": "StickyNote",
                   "pageNumber": 1,
                   "rect": { "x": 100, "y": 100, "width": 200, "height": 100 },
                   "text": "This is a sticky note added via GroupDocs.Annotation Cloud SDK.",
                   "color": "FFFF00"
               }
           ],
           "outputPath": "sample_annotated.docx"
         }'

Scarica il documento annotato:

curl -X GET "https://api.groupdocs.cloud/v2.0.0/storage/file/sample_annotated.docx?download=true" \
     -H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
     -o sample_annotated.docx

Per ulteriori dettagli sui payload delle richieste, consulta la riferimento API.

Configurazione delle opzioni di annotazione per le note adesive

L’SDK espone diverse proprietà che consentono di regolare finemente l’aspetto e il comportamento della nota adesiva:

  • annotationType - deve essere impostato su "StickyNote" (obbligatorio).
  • pageNumber - la pagina in cui apparirà la nota.
  • rect - definisce la posizione (x, y) e le dimensioni (width, height). Regola questi valori per controllare il posizionamento.
  • text - il contenuto della nota.
  • color - colore di sfondo in HEX (ad esempio, "FFFF00" per il giallo).

Puoi anche impostare campi opzionali come author, fontFamily o opacity tramite il modello AnnotationInfo. Consulta il riferimento API per l’elenco completo delle proprietà configurabili.

Conclusione

Seguendo i passaggi sopra, ora sai come creare Note adesive nelle pagine Word in Node.JS usando GroupDocs.Annotation Cloud SDK. Che tu preferisca un’implementazione nativa Node.js o un flusso di lavoro basato su cURL REST, l’SDK offre un modo coerente e affidabile per annotare file DOCX in modo programmatico. Ricorda di applicare una licenza valida per l’uso in produzione; puoi ottenere una licenza temporanea dalla pagina della licenza o consultare le opzioni di prezzo nella pagina del prodotto. Buona annotazione!

FAQs

  • Come posso creare Sticky Notes nelle pagine Word in Node.JS usando GroupDocs.Annotation Cloud SDK?
    Usa l’AnnotateApi come mostrato nell’esempio di codice. L’SDK gestisce l’accesso ai file, la creazione di annotazioni e la generazione dell’output automaticamente.

  • Quali formati di file sono supportati per l’annotazione con l’SDK?
    L’SDK funziona con DOCX, PDF, PPTX, XLSX, e molti altri formati popolari. Consulta l’elenco completo nella documentazione ufficiale.

  • Come mi autentico quando utilizzo l’API REST per le note adesive?
    Ottieni un token di accesso tramite l’endpoint /auth/token utilizzando le tue credenziali client, quindi includi il token nell’intestazione Authorization: Bearer per tutte le chiamate successive. I passaggi dettagliati sono nel riferimento API.

  • Posso personalizzare il colore o le dimensioni della nota adesiva?
    Sì. Imposta la proprietà color su un valore HEX e regola le dimensioni rect (width, height) per controllare la dimensione e la posizione della nota.

Read More