La suppression des notes, des surlignages ou des marques d’encre indésirables dans les PDF est une exigence fréquente lors de la préparation de documents propres à distribuer. GroupDocs.Annotation Cloud SDK for Node.js fournit une bibliothèque puissante basée sur REST qui vous permet de gérer les annotations PDF de manière programmatique. Ce guide vous montre comment supprimer les objets d’annotation d’un PDF avec REST dans Node.JS, étape par étape. Vous verrez un exemple de code complet, des commandes cURL équivalentes, des conseils de configuration et des recommandations de bonnes pratiques pour intégrer la suppression d’annotations dans vos services.

Exemple complet fonctionnel pour supprimer les objets d’annotation d’un PDF avec REST en Node.JS

Cet exemple montre comment téléverser un PDF, supprimer toutes ses annotations et télécharger le fichier nettoyé en utilisant le 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}`);
})();

Note : Cet exemple de code démontre la fonctionnalité principale. Avant de l’utiliser dans votre projet, assurez‑vous de mettre à jour tous les chemins de fichiers et les valeurs de configuration pour qu’ils correspondent à votre environnement réel, vérifiez que toutes les dépendances requises sont correctement installées et testez soigneusement dans votre environnement de développement. Si vous rencontrez des problèmes, veuillez consulter la documentation officielle ou contacter l’équipe de support pour obtenir de l’aide.

Supprimer les annotations PDF via l’API REST en utilisant cURL

Ci-dessous se trouvent les commandes cURL qui exécutent le même flux de travail de suppression d’annotation via les points de terminaison REST de 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

Pour une liste complète des points de terminaison et des paramètres, consultez la documentation officielle de l’API.

Comment supprimer les objets d’annotation d’un PDF avec REST en Node.JS fonctionne

  1. Configuration de l’authentification - La classe Configuration est instanciée avec votre clientId et clientSecret, créant un contexte authentifié pour tous les appels d’API ultérieurs.
    const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);
    
  2. Téléchargement de fichier - UploadFileRequest envoie les octets PDF locaux vers le stockage GroupDocs Cloud. La méthode storageApi.uploadFile gère le transfert.
    const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({
        path: remoteFilePath,
        file: fileBytes
    });
    await storageApi.uploadFile(uploadRequest);
    
  3. Récupération des annotations - GetAnnotationsRequest crée un objet de requête avec une référence FileInfo. L’appel annotationsApi.getAnnotations renvoie une collection d’objets d’annotation, dont les ID sont extraits.
    const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({
        fileInfo: fileInfo
    });
    const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);
    
  4. Suppression des annotations - Si des ID existent, DeleteAnnotationsRequest est rempli et transmis à annotationsApi.deleteAnnotations, qui supprime définitivement les annotations du PDF stocké.
    const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({
        fileInfo: fileInfo,
        annotationIds: annotationIds
    });
    await annotationsApi.deleteAnnotations(deleteRequest);
    
  5. Téléchargement du PDF nettoyé - Enfin, DownloadFileRequest récupère le fichier mis à jour, et fs.writeFileSync l’écrit sur le système de fichiers local.
    const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({
        path: remoteFilePath
    });
    const fileStream = await storageApi.downloadFile(downloadRequest);
    fs.writeFileSync(localOutputPath, fileStream);
    

Pour des définitions détaillées des classes et des méthodes, consultez la référence API.

Installation et configuration GroupDocs.Annotation Cloud SDK for Node.js

Le SDK est distribué sous forme de package npm. Installez‑le avec la commande ci‑dessous, puis requérez‑le dans votre projet.

npm install groupdocs-annotation-cloud

Vous pouvez également télécharger le dernier package directement depuis la page des releases GitHub ou depuis l’URL de téléchargement officielle.

Après l’installation, importez la bibliothèque et créez un objet de configuration comme indiqué dans l’exemple de code :

const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");
const config = new GroupDocsAnnotationCloud.Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");

Assurez-vous que votre environnement d’exécution répond aux exigences de version de Node.js et que vous disposez d’un compte GroupDocs valide pour obtenir les informations d’identification du client.

Options et paramètres de suppression d’annotation

Le SDK expose plusieurs paramètres que vous pouvez ajuster :

  • clientId / clientSecret - Identifiants pour l’authentification OAuth. Définissez‑les dans le constructeur Configuration.
  • fileInfo.filePath - Le chemin du PDF dans le stockage GroupDocs Cloud. Modifiez‑le si vous stockez les fichiers dans un autre dossier.
  • annotationIds - Un tableau d’ID renvoyés par GetAnnotations. Fournir un sous‑ensemble permet une suppression sélective.

Des paramètres supplémentaires tels que les délais d’attente des requêtes et la configuration du proxy sont disponibles dans la documentation du SDK ; consultez la documentation officielle pour la liste complète.

Meilleures pratiques pour la suppression des annotations PDF via REST

  • Valider les ID d’annotation - Vérifiez toujours que les ID que vous prévoyez de supprimer existent ; tenter de supprimer des ID inexistants peut entraîner une erreur 404.
  • Utiliser HTTPS - Toutes les appels d’API doivent être effectués via HTTPS afin de protéger vos identifiants et les données du document.
  • Gérer les gros fichiers avec des téléchargements fractionnés - Pour les PDF de plus de 100 Mo, privilégiez le point de terminaison de téléchargement multipart pour éviter les dépassements de délai.
  • Consigner les réponses de l’API - Enregistrez les ID de requête et les réponses pour les pistes d’audit et faciliter le dépannage.
  • Réutiliser les jetons d’accès - Mettez en cache le jeton OAuth jusqu’à son expiration afin de réduire la charge d’authentification.

Questions fréquentes

  • Comment m’authentifier avec GroupDocs.Annotation Cloud API ?
    Obtenez un ID client et un secret depuis votre compte GroupDocs, puis demandez un jeton d’accès via le point de terminaison OAuth. Voir la documentation officielle pour plus de détails.

  • Puis-je supprimer des annotations spécifiques au lieu de toutes ?
    Oui, fournissez les ID des annotations que vous souhaitez supprimer dans le DeleteAnnotationsRequest. Le SDK renvoie la liste des ID d’annotation après un appel GetAnnotations.

  • How can I remove Annotation objects from PDF with REST in Node.JS?
    Utilisez le GroupDocs.Annotation Cloud SDK for Node.js pour appeler le point de terminaison DeleteAnnotations après avoir récupéré les ID des annotations. Le flux complet est présenté dans l’exemple de code et la section cURL de ce guide.

  • Quel type de licence est requis pour une utilisation en production ?
    Une licence payante est nécessaire pour la production. Vous pouvez obtenir une licence temporaire depuis la page de licence temporaire lors de l’évaluation.

Lectures complémentaires