Rimuovere note indesiderate, evidenziazioni o segni di inchiostro dai PDF è una necessità frequente quando si preparano documenti puliti per la distribuzione. GroupDocs.Annotation Cloud SDK for Node.js offre una potente libreria basata su REST che consente di gestire le annotazioni PDF in modo programmatico. Questa guida mostra come rimuovere gli oggetti Annotation da un PDF con REST in Node.JS, passo dopo passo. Vedrai un esempio di codice completo, comandi cURL equivalenti, consigli di configurazione e raccomandazioni sulle migliori pratiche per integrare la rimozione delle annotazioni nei tuoi servizi.
Esempio completo funzionante per rimuovere gli oggetti di annotazione da PDF con REST in Node.JS
Questo esempio dimostra come caricare un PDF, eliminare tutte le sue annotazioni e scaricare il file pulito utilizzando il GroupDocs.Annotation SDK.
const fs = require('fs');
const path = require('path');
const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");
// ==== Authentication =========================================================
const clientId = "YOUR_CLIENT_ID";
const clientSecret = "YOUR_CLIENT_SECRET";
const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);
const annotationsApi = new GroupDocsAnnotationCloud.AnnotationsApi(config);
const storageApi = new GroupDocsAnnotationCloud.StorageApi(config);
// ==== Local & Remote file definitions =======================================
const localInputPath = path.resolve(__dirname, "input.pdf");
const localOutputPath = path.resolve(__dirname, "output.pdf");
const remoteFilePath = "input.pdf";
// ==== Main workflow ==========================================================
(async () => {
// 1. Upload PDF to GroupDocs Cloud storage
const fileBytes = fs.readFileSync(localInputPath);
const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({
path: remoteFilePath,
file: fileBytes
});
await storageApi.uploadFile(uploadRequest);
// 2. Build FileInfo object for the uploaded PDF
const fileInfo = new GroupDocsAnnotationCloud.FileInfo({
filePath: remoteFilePath
});
// 3. Retrieve all existing annotations
const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({
fileInfo: fileInfo
});
const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);
const annotationIds = (annotationsResult.annotations || []).map(a => a.id);
// 4. Delete all annotations (if any)
if (annotationIds.length > 0) {
const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({
fileInfo: fileInfo,
annotationIds: annotationIds
});
await annotationsApi.deleteAnnotations(deleteRequest);
}
// 5. Download the cleaned PDF back to local storage
const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({
path: remoteFilePath
});
const fileStream = await storageApi.downloadFile(downloadRequest);
fs.writeFileSync(localOutputPath, fileStream);
console.log(`All annotations removed. Clean file saved to ${localOutputPath}`);
})();
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.
Elimina le annotazioni PDF tramite REST API usando cURL
Di seguito sono riportati i comandi cURL che eseguono lo stesso flusso di rimozione delle annotazioni tramite gli endpoint REST di GroupDocs.Annotation Cloud.
# 1. Obtain an access token
curl -X POST "https://api.groupdocs.cloud/v2.0/auth/token" \
-H "Content-Type: application/json" \
-d "{\"client_id\":\"YOUR_CLIENT_ID\",\"client_secret\":\"YOUR_CLIENT_SECRET\"}"
# 2. Upload the source PDF
curl -X PUT "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/pdf" \
--data-binary "@input.pdf"
# 3. Retrieve annotation IDs
curl -X GET "https://api.groupdocs.cloud/v2.0/annotation/annotations?filePath=input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# 4. Delete all retrieved annotations
curl -X DELETE "https://api.groupdocs.cloud/v2.0/annotation/annotations?filePath=input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-H "Content-Type: application/json" \
-d "{\"annotationIds\":[\"id1\",\"id2\"]}"
# 5. Download the cleaned PDF
curl -X GET "https://api.groupdocs.cloud/v2.0/storage/file/input.pdf" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN" \
-o output.pdf
Per un elenco completo di endpoint e parametri, consulta la documentazione ufficiale dell’API.
Come rimuovere gli oggetti di annotazione da PDF con REST in Node.JS
- Configurazione dell’autenticazione - La classe
Configurationviene istanziata con il tuoclientIdeclientSecret, creando un contesto autenticato per tutte le successive chiamate API.const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret); - Caricamento del file -
UploadFileRequestinvia i byte PDF locali allo storage di GroupDocs Cloud. Il metodostorageApi.uploadFilegestisce il trasferimento.const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({ path: remoteFilePath, file: fileBytes }); await storageApi.uploadFile(uploadRequest); - Recupero delle annotazioni -
GetAnnotationsRequestcostruisce un oggetto di richiesta con un riferimentoFileInfo. La chiamataannotationsApi.getAnnotationsrestituisce una collezione di oggetti annotazione, da cui vengono estratti gli ID.const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({ fileInfo: fileInfo }); const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest); - Eliminazione delle annotazioni - Se esistono ID,
DeleteAnnotationsRequestviene popolato e passato aannotationsApi.deleteAnnotations, che rimuove permanentemente le annotazioni dal PDF memorizzato.const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({ fileInfo: fileInfo, annotationIds: annotationIds }); await annotationsApi.deleteAnnotations(deleteRequest); - Download del PDF pulito - Infine,
DownloadFileRequestrecupera il file aggiornato efs.writeFileSynclo scrive nel filesystem locale.const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({ path: remoteFilePath }); const fileStream = await storageApi.downloadFile(downloadRequest); fs.writeFileSync(localOutputPath, fileStream);
Per le definizioni dettagliate di classi e metodi, fare riferimento al riferimento API.
Installazione e configurazione di GroupDocs.Annotation Cloud SDK for Node.js
L’SDK è distribuito come pacchetto npm. Installalo con il comando riportato di seguito e poi richiedilo nel tuo progetto.
npm install groupdocs-annotation-cloud
Puoi anche scaricare l’ultimo pacchetto direttamente dalla pagina dei rilasci su GitHub o dall’URL di download ufficiale.
Dopo l’installazione, importa la libreria e crea un oggetto di configurazione come mostrato nell’esempio di codice:
const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");
const config = new GroupDocsAnnotationCloud.Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
Assicurati che il tuo ambiente di runtime soddisfi i requisiti della versione di Node.js e che tu abbia un account GroupDocs valido per ottenere le credenziali client.
Opzioni e impostazioni per la rimozione delle annotazioni
L’SDK espone diversi parametri che è possibile regolare:
- clientId / clientSecret - Credenziali per l’autenticazione OAuth. Impostale nel costruttore
Configuration. - fileInfo.filePath - Il percorso del PDF nello storage di GroupDocs Cloud. Modificalo se memorizzi i file in una cartella diversa.
- annotationIds - Un array di ID restituiti da
GetAnnotations. Fornire un sottoinsieme consente la cancellazione selettiva.
Impostazioni aggiuntive come i timeout delle richieste e la configurazione del proxy sono disponibili nella documentazione SDK; consulta la documentazione ufficiale per l’elenco completo.
Best Practices per la rimozione delle annotazioni PDF tramite REST
- Convalida gli ID delle annotazioni - Verifica sempre che gli ID che intendi eliminare esistano; tentare di eliminare ID inesistenti può causare un errore 404.
- Usa HTTPS - Tutte le chiamate API devono essere eseguite tramite HTTPS per proteggere le tue credenziali e i dati dei documenti.
- Gestisci file di grandi dimensioni con upload a blocchi - Per i PDF più grandi di 100 MB, preferisci l’endpoint di upload multipart per evitare timeout.
- Registra le risposte API - Memorizza gli ID delle richieste e le risposte per tracce di audit e una più facile risoluzione dei problemi.
- Riutilizza i token di accesso - Memorizza nella cache il token OAuth fino alla scadenza per ridurre il carico di autenticazione.
Domande comuni
Come posso autenticarmi con l’API GroupDocs.Annotation Cloud?
Ottieni un client ID e un segreto dal tuo account GroupDocs, quindi richiedi un token di accesso tramite l’endpoint OAuth. Consulta la documentazione ufficiale per i dettagli.Posso eliminare annotazioni specifiche invece di tutte?
Sì, fornisci gli ID delle annotazioni che desideri rimuovere nella DeleteAnnotationsRequest. L’SDK restituisce l’elenco degli ID delle annotazioni dopo una chiamata GetAnnotations.Come posso rimuovere gli oggetti Annotation da PDF con REST in Node.JS?
Utilizza il GroupDocs.Annotation Cloud SDK for Node.js per chiamare l’endpoint DeleteAnnotations dopo aver recuperato gli ID delle annotazioni. Il flusso completo è mostrato nell’esempio di codice e nella sezione cURL di questa guida.Quale licenza è necessaria per l’uso in produzione?
È necessaria una licenza a pagamento per la produzione. È possibile ottenere una licenza temporanea dalla pagina della licenza temporanea durante la valutazione.
