Видалення небажаних нотаток, виділених фрагментів або чорнильних позначок з PDF‑файлів є поширеною вимогою під час підготовки чистих документів для розповсюдження. GroupDocs.Annotation Cloud SDK for Node.js надає потужну бібліотеку на основі REST, яка дозволяє програмно керувати анотаціями PDF. У цьому посібнику показано, як видаляти об’єкти Annotation з PDF за допомогою REST у Node.JS крок за кроком. Ви побачите повний приклад коду, еквівалентні команди cURL, поради щодо налаштування та рекомендації кращих практик для інтеграції видалення анотацій у ваші сервіси.
Повний робочий приклад для видалення об’єктів анотацій з PDF за допомогою REST у Node.JS
Цей приклад демонструє, як завантажити PDF, видалити всі його анотації та завантажити очищений файл за допомогою 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}`);
})();
Примітка: Цей приклад коду демонструє основну функціональність. Перш ніж використовувати його у вашому проєкті, переконайтеся, що оновили всі шляхи до файлів та значення конфігурації відповідно до вашого реального середовища, перевірте, що всі необхідні залежності встановлені правильно, і ретельно протестуйте у вашому середовищі розробки. Якщо ви зіткнетеся з будь-якими проблемами, будь ласка, зверніться до офіційної документації або зв’яжіться з командою підтримки для отримання допомоги.
Видалення анотацій PDF через REST API за допомогою cURL
Нижче наведено команди cURL, які виконують той самий процес видалення анотацій через REST‑ендоінти 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
Для повного списку кінцевих точок і параметрів перегляньте офіційну документацію API.
Як працює видалення об’єктів анотацій з PDF за допомогою REST у Node.JS
- Налаштування автентифікації - Клас
Configurationстворюється з вашимиclientIdтаclientSecret, створюючи автентифікований контекст для всіх наступних викликів API.const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret); - Завантаження файлу -
UploadFileRequestнадсилає локальні байти PDF у сховище GroupDocs Cloud. МетодstorageApi.uploadFileобробляє передачу.const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({ path: remoteFilePath, file: fileBytes }); await storageApi.uploadFile(uploadRequest); - Отримання анотацій -
GetAnnotationsRequestстворює об’єкт запиту з посиланням наFileInfo. ВикликannotationsApi.getAnnotationsповертає колекцію об’єктів анотацій, з якої витягуються ідентифікатори.const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({ fileInfo: fileInfo }); const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest); - Видалення анотацій - Якщо існують ідентифікатори, заповнюється
DeleteAnnotationsRequestі передається вannotationsApi.deleteAnnotations, який назавжди видаляє анотації зі збереженого PDF.const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({ fileInfo: fileInfo, annotationIds: annotationIds }); await annotationsApi.deleteAnnotations(deleteRequest); - Завантаження очищеного PDF - Нарешті,
DownloadFileRequestотримує оновлений файл, аfs.writeFileSyncзаписує його у локальну файлову систему.const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({ path: remoteFilePath }); const fileStream = await storageApi.downloadFile(downloadRequest); fs.writeFileSync(localOutputPath, fileStream);
Для докладних визначень класів і методів зверніться до довідки API.
Встановлення та налаштування GroupDocs.Annotation Cloud SDK for Node.js
SDK розповсюджується як npm‑пакет. Встановіть його за допомогою команди нижче, а потім підключіть у вашому проєкті.
npm install groupdocs-annotation-cloud
Ви також можете завантажити останній пакет безпосередньо зі сторінки випусків на GitHub або з офіційного URL для завантаження.
Після встановлення імпортуйте бібліотеку та створіть об’єкт конфігурації, як показано у прикладі коду:
const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");
const config = new GroupDocsAnnotationCloud.Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
Переконайтеся, що ваше середовище виконання відповідає вимогам до версії Node.js і що у вас є дійсний обліковий запис GroupDocs для отримання клієнтських облікових даних.
Параметри та налаштування видалення анотацій
SDK надає кілька параметрів, які ви можете налаштувати:
- clientId / clientSecret - Облікові дані для автентифікації OAuth. Встановіть їх у конструкторі
Configuration. - fileInfo.filePath - Шлях до PDF у сховищі GroupDocs Cloud. За потреби змініть його, якщо ви зберігаєте файли в іншій папці.
- annotationIds - Масив ідентифікаторів, повернутих методом
GetAnnotations. Передача підмножини дозволяє вибіркове видалення.
Додаткові налаштування, такі як тайм‑аути запитів та конфігурація проксі, доступні в документації SDK; перегляньте офіційну документацію для повного списку.
Кращі практики видалення анотацій PDF за допомогою REST
- Перевіряти ідентифікатори анотацій - Завжди перевіряйте, чи існують ідентифікатори, які ви плануєте видалити; спроба видалити неіснуючі ідентифікатори може призвести до помилки 404.
- Використовувати HTTPS - Усі виклики API повинні виконуватись через HTTPS, щоб захистити ваші облікові дані та дані документів.
- Обробляти великі файли за допомогою завантаження частинами - Для PDF‑файлів розміром більше 100 МБ використовуйте multipart‑завантаження, щоб уникнути тайм‑аутів.
- Логувати відповіді API - Зберігайте ідентифікатори запитів та відповіді для аудиту та спрощення усунення проблем.
- Повторно використовувати токени доступу - Кешуйте OAuth‑токен до його закінчення, щоб зменшити навантаження на автентифікацію.
Поширені питання
Як автентифікуватися за допомогою GroupDocs.Annotation Cloud API?
Отримайте client ID та secret зі свого облікового запису GroupDocs, потім запитайте access token через OAuth endpoint. Дивіться офіційну документацію для деталей.Чи можу я видалити конкретні анотації замість усіх?
Так, вкажіть ідентифікатори анотацій, які потрібно видалити, у DeleteAnnotationsRequest. SDK повертає список ідентифікаторів анотацій після виклику GetAnnotations.Як можна видалити об’єкти Annotation з PDF за допомогою REST у Node.JS?
Використовуйте GroupDocs.Annotation Cloud SDK for Node.js для виклику кінцевої точки DeleteAnnotations після отримання ідентифікаторів анотацій. Повний процес продемонстровано у прикладі коду та розділі cURL цього посібника.Яка ліцензія потрібна для використання у продакшн?
Для продакшн потрібна платна ліцензія. Ви можете отримати тимчасову ліцензію на сторінці тимчасової ліцензії під час оцінки.
