Adicionar comentários rápidos diretamente em documentos Word é uma necessidade comum em fluxos de trabalho de revisão colaborativa. GroupDocs.Annotation Cloud SDK for Node.JS permite que você adicione anotações ricas programaticamente sem sair do seu ambiente de servidor. Neste guia, mostraremos como criar Notas Autoadesivas nas páginas do Word em Node.JS, cobrindo a configuração, um passo a passo detalhado, um exemplo de código completo e chamadas cURL equivalentes.
Configurando GroupDocs.Annotation Cloud SDK for Node.JS
Antes de começar, certifique‑se de que você tem:
- Node.js 14+ e npm instalados
- Uma conta GroupDocs cloud com clientId e clientSecret
- Acesso ao arquivo DOCX de origem que você deseja anotar
Instale o SDK via npm:
npm install groupdocs-annotation-cloud
Baixe o pacote mais recente na página oficial de lançamentos se preferir uma instalação manual: GroupDocs.Annotation Cloud SDK for Node.JS Download.
Crie um objeto de configuração com suas credenciais (trecho do exemplo completo):
const { Configuration } = require("@groupdocs.annotation-cloud");
const config = new Configuration({
clientId: "YOUR_CLIENT_ID",
clientSecret: "YOUR_CLIENT_SECRET"
});
Com o SDK instalado e as credenciais prontas, podemos prosseguir para a implementação.
Criar Notas Autoadesivas nas Páginas do Word em Node.JS: Guia Passo a Passo
Neste tutorial, criaremos Sticky Notes nas páginas do Word em Node.JS usando as classes de anotação do SDK.
Etapa 1: Inicializar a API de Anotação
Primeiro, importe as classes necessárias e crie uma instância de AnnotateApi.
const { AnnotateApi, models } = require("@groupdocs.annotation-cloud");
const annotateApi = new AnnotateApi(config);
Etapa 2: Definir arquivos de origem e destino
Especifique o DOCX de entrada e o caminho para a saída anotada.
const inputFilePath = "sample.docx";
const outputFilePath = "sample_annotated.docx";
const fileInfo = new models.FileInfo();
fileInfo.filePath = inputFilePath;
Passo 3: Definir a posição da nota adesiva
Crie um Rectangle que determina onde a nota adesiva aparecerá na página 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
Etapa 4: Construir o Objeto de Anotação de Nota Autoadesiva
Configure o tipo de anotação, número da página, retângulo, texto e cor de fundo.
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
Etapa 5: Executar a Solicitação de Anotação
Monte as opções da solicitação e chame o método 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);
}
})();
Exemplo completo de funcionamento para criar notas adesivas nas páginas do Word em Node.JS
O exemplo a seguir demonstra a implementação completa para criar notas adesivas em páginas do Word no Node.JS usando o 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: Este exemplo de código demonstra a funcionalidade principal. Antes de usá‑lo em seu projeto, certifique‑se de atualizar quaisquer caminhos de arquivo e valores de configuração para corresponder ao seu ambiente real, verifique se todas as dependências necessárias estão devidamente instaladas e teste minuciosamente em seu ambiente de desenvolvimento. Se encontrar algum problema, consulte a documentação oficial ou entre em contato com a equipe de suporte para obter assistência.
Adicionando Anotações de Nota Autoadesiva com cURL e a API REST
A API REST oferece a mesma capacidade sem escrever código. Abaixo estão as chamadas cURL necessárias.
Primeiro, obtenha um token de acesso:
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"}'
Carregue o arquivo DOCX de origem (substitua YOUR_ACCESS_TOKEN pelo token da etapa anterior):
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
Crie a anotação de 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"
}'
Baixe o documento anotado:
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
Para obter mais detalhes sobre os payloads de solicitação, veja a referência da API.
Configurando Opções de Anotação para Notas Autoadesivas
O SDK expõe várias propriedades que permitem ajustar finamente a aparência e o comportamento da nota adesiva:
- annotationType - deve ser definido como
"StickyNote"(obrigatório). - pageNumber - a página onde a anotação aparecerá.
- rect - define a posição (
x,y) e o tamanho (width,height). Ajuste esses valores para controlar a colocação. - text - o conteúdo da anotação.
- color - cor de fundo em HEX (por exemplo,
"FFFF00"para amarelo).
Você também pode definir campos opcionais, como author, fontFamily ou opacity, por meio do modelo AnnotationInfo. Consulte a referência da API para a lista completa de propriedades configuráveis.
Conclusão
Seguindo os passos acima, você agora sabe como criar Notas Autoadesivas nas páginas do Word em Node.JS usando o GroupDocs.Annotation Cloud SDK. Seja qual for a sua preferência, uma implementação nativa em Node.js ou um fluxo de trabalho baseado em cURL via REST, o SDK oferece uma maneira consistente e confiável de anotar arquivos DOCX programaticamente. Lembre‑se de aplicar uma licença válida para uso em produção; você pode obter uma licença temporária na página de licença ou revisar as opções de preços na página do produto. Boa anotação!
FAQs
Como posso criar Notas adesivas nas páginas do Word em Node.JS usando o GroupDocs.Annotation Cloud SDK?
Use o AnnotateApi conforme demonstrado no exemplo de código. O SDK lida com o acesso ao arquivo, a criação de anotações e a geração de saída automaticamente.Quais formatos de arquivo são suportados para anotação com o SDK?
O SDK funciona com DOCX, PDF, PPTX, XLSX, e muitos outros formatos populares. Consulte a lista completa na documentação oficial.Como faço a autenticação ao usar a API REST para notas adesivas?
Obtenha um token de acesso através do endpoint/auth/tokenusando suas credenciais de cliente, então inclua o token no cabeçalhoAuthorization: Bearerem todas as chamadas subsequentes. Etapas detalhadas estão na referência da API.Posso personalizar a cor ou o tamanho da nota adesiva?
Sim. Defina a propriedadecolorpara um valor HEX e ajuste as dimensõesrect(width,height) para controlar o tamanho e a posição da nota.
