Usuwanie niechcianych notatek, podświetleń lub znaków atramentowych z plików PDF jest częstym wymogiem przy przygotowywaniu czystych dokumentów do dystrybucji. GroupDocs.Annotation Cloud SDK for Node.js zapewnia potężną bibliotekę opartą na REST, która umożliwia programowe zarządzanie adnotacjami w formacie PDF. Ten przewodnik pokazuje, jak usunąć obiekty Annotation z PDF przy użyciu REST w Node.JS, krok po kroku. Zobaczysz kompletny przykład kodu, równoważne polecenia cURL, wskazówki konfiguracyjne oraz zalecenia najlepszych praktyk, aby zintegrować usuwanie adnotacji w swoich usługach.

Pełny działający przykład usuwania obiektów adnotacji z PDF przy użyciu REST w Node.JS

Ten przykład demonstruje, jak przesłać plik PDF, usunąć wszystkie jego adnotacje i pobrać oczyszczony plik przy użyciu 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}`);
})();

Uwaga: Ten przykład kodu demonstruje podstawową funkcjonalność. Przed użyciem go w swoim projekcie upewnij się, że zaktualizowałeś wszystkie ścieżki plików i wartości konfiguracyjne, aby odpowiadały rzeczywistemu środowisku, sprawdź, czy wszystkie wymagane zależności są prawidłowo zainstalowane, oraz dokładnie przetestuj w środowisku deweloperskim. Jeśli napotkasz jakiekolwiek problemy, odwołaj się do oficjalnej dokumentacji lub skontaktuj się z zespołem wsparcia w celu uzyskania pomocy.

Usuwanie adnotacji PDF za pomocą REST API przy użyciu cURL

Poniżej znajdują się polecenia cURL, które wykonują ten sam przepływ usuwania adnotacji za pośrednictwem punktów końcowych REST usługi 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

Aby uzyskać pełną listę punktów końcowych i parametrów, zobacz oficjalną dokumentację API.

Jak działa usuwanie obiektów adnotacji z PDF przy użyciu REST w Node.JS

  1. Konfiguracja uwierzytelniania - Klasa Configuration jest tworzona z Twoim clientId i clientSecret, tworząc uwierzytelniony kontekst dla wszystkich kolejnych wywołań API.
const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);
  1. Przesyłanie pliku - UploadFileRequest wysyła lokalne bajty PDF do magazynu GroupDocs Cloud. Metoda storageApi.uploadFile obsługuje transfer.
const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({
    path: remoteFilePath,
    file: fileBytes
});
await storageApi.uploadFile(uploadRequest);
  1. Pobieranie adnotacji - GetAnnotationsRequest tworzy obiekt żądania z odniesieniem do FileInfo. Wywołanie annotationsApi.getAnnotations zwraca kolekcję obiektów adnotacji, z których wyodrębnia się identyfikatory.
const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({
    fileInfo: fileInfo
});
const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);
  1. Usuwanie adnotacji - Jeśli istnieją jakiekolwiek identyfikatory, DeleteAnnotationsRequest jest wypełniany i przekazywany do annotationsApi.deleteAnnotations, które trwale usuwa adnotacje z przechowywanego PDF.
const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({
    fileInfo: fileInfo,
    annotationIds: annotationIds
});
await annotationsApi.deleteAnnotations(deleteRequest);
  1. Pobieranie czystego PDF - Na koniec DownloadFileRequest pobiera zaktualizowany plik, a fs.writeFileSync zapisuje go w lokalnym systemie plików.
const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({
    path: remoteFilePath
});
const fileStream = await storageApi.downloadFile(downloadRequest);
fs.writeFileSync(localOutputPath, fileStream);

Aby uzyskać szczegółowe definicje klas i metod, odwołaj się do referencji API.

Instalowanie i konfigurowanie GroupDocs.Annotation Cloud SDK dla Node.js

SDK jest dystrybuowany jako pakiet npm. Zainstaluj go przy pomocy poniższego polecenia, a następnie użyj require w swoim projekcie.

npm install groupdocs-annotation-cloud

Możesz również pobrać najnowszy pakiet bezpośrednio ze strony wydań GitHub lub z oficjalnego adresu URL do pobrania.

Po instalacji zaimportuj bibliotekę i utwórz obiekt konfiguracji, jak pokazano w przykładzie kodu:

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

Upewnij się, że Twoje środowisko uruchomieniowe spełnia wymagania dotyczące wersji Node.js oraz że posiadasz ważne konto GroupDocs, aby uzyskać dane uwierzytelniające klienta.

Opcje i ustawienia usuwania adnotacji

SDK udostępnia kilka parametrów, które możesz dostroić:

  • clientId / clientSecret - Dane uwierzytelniające do autoryzacji OAuth. Ustaw je w konstruktorze Configuration.
  • fileInfo.filePath - Ścieżka do pliku PDF w pamięci GroupDocs Cloud. Dostosuj ją, jeśli przechowujesz pliki w innym folderze.
  • annotationIds - Tablica identyfikatorów zwróconych przez GetAnnotations. Podanie podzbioru umożliwia selektywne usuwanie.

Dodatkowe ustawienia, takie jak limit czasu żądania i konfiguracja proxy, są dostępne w dokumentacji SDK; zobacz oficjalną dokumentację po pełną listę.

Najlepsze praktyki usuwania adnotacji PDF za pośrednictwem REST

  • Sprawdź identyfikatory adnotacji - Zawsze sprawdzaj, czy identyfikatory, które zamierzasz usunąć, istnieją; próba usunięcia nieistniejących identyfikatorów może spowodować błąd 404.
  • Używaj HTTPS - Wszystkie wywołania API muszą być wykonywane przez HTTPS, aby chronić Twoje poświadczenia i dane dokumentu.
  • Obsługuj duże pliki przy użyciu przesyłania w częściach - Dla plików PDF większych niż 100 MB, preferuj punkt końcowy wieloczęściowego przesyłania, aby uniknąć przekroczenia limitu czasu.
  • Loguj odpowiedzi API - Przechowuj identyfikatory żądań i odpowiedzi w celu tworzenia ścieżek audytu i ułatwienia rozwiązywania problemów.
  • Ponownie używaj tokenów dostępu - Buforuj token OAuth, dopóki nie wygaśnie, aby zmniejszyć obciążenie uwierzytelniania.

Często zadawane pytania

  • Jak uwierzytelnić się w GroupDocs.Annotation Cloud API?
    Uzyskaj identyfikator klienta (client ID) i sekret z konta GroupDocs, a następnie żądaj tokenu dostępu poprzez punkt końcowy OAuth. Zobacz oficjalną dokumentację, aby uzyskać szczegóły.

  • Czy mogę usunąć konkretne adnotacje zamiast wszystkich?
    Tak, podaj identyfikatory adnotacji, które chcesz usunąć w DeleteAnnotationsRequest. SDK zwraca listę identyfikatorów adnotacji po wywołaniu GetAnnotations.

  • Jak mogę usunąć obiekty adnotacji z PDF przy użyciu REST w Node.JS?
    Użyj GroupDocs.Annotation Cloud SDK for Node.js, aby wywołać endpoint DeleteAnnotations po pobraniu identyfikatorów adnotacji. Pełny przepływ pracy jest przedstawiony w przykładzie kodu oraz sekcji cURL tego przewodnika.

  • Jakie licencjonowanie jest wymagane do użytku produkcyjnego?
    Do produkcji wymagana jest płatna licencja. Podczas oceny możesz uzyskać tymczasową licencję ze strony tymczasowej licencji.

Dalsza lektura