Menghapus catatan, sorotan, atau goresan tinta yang tidak diinginkan dari PDF adalah kebutuhan yang sering muncul saat menyiapkan dokumen bersih untuk distribusi. GroupDocs.Annotation Cloud SDK for Node.js menyediakan pustaka berbasis REST yang kuat yang memungkinkan Anda mengelola anotasi PDF secara programatis. Panduan ini menunjukkan cara menghapus objek Annotation dari PDF dengan REST di Node.JS, langkah demi langkah. Anda akan melihat contoh kode lengkap, perintah cURL yang setara, tips konfigurasi, dan rekomendasi praktik terbaik untuk mengintegrasikan penghapusan anotasi ke dalam layanan Anda.
Contoh Kerja Penuh untuk Menghapus Objek Anotasi dari PDF dengan REST di Node.JS
Contoh ini menunjukkan cara mengunggah PDF, menghapus semua anotasinya, dan mengunduh file yang telah dibersihkan menggunakan 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}`);
})();
Catatan: Contoh kode ini menunjukkan fungsi inti. Sebelum menggunakannya dalam proyek Anda, pastikan untuk memperbarui semua jalur file dan nilai konfigurasi agar sesuai dengan lingkungan Anda yang sebenarnya, verifikasi bahwa semua dependensi yang diperlukan telah terinstal dengan benar, dan lakukan pengujian secara menyeluruh di lingkungan pengembangan Anda. Jika Anda menemukan masalah, silakan merujuk ke dokumentasi resmi atau hubungi tim dukungan untuk bantuan.
Hapus Anotasi PDF melalui REST API Menggunakan cURL
Berikut adalah perintah cURL yang melakukan alur kerja penghapusan anotasi yang sama melalui endpoint 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
Untuk daftar lengkap endpoint dan parameter, lihat dokumentasi API resmi.
Cara Menghapus Objek Anotasi dari PDF dengan REST di Node.JS Berfungsi
- Authentication Setup - Kelas
Configurationdiinstansiasi denganclientIddanclientSecretAnda, membuat konteks terautentikasi untuk semua panggilan API berikutnya.
const config = new GroupDocsAnnotationCloud.Configuration(clientId, clientSecret);
- File Upload -
UploadFileRequestmengirimkan byte PDF lokal ke penyimpanan GroupDocs Cloud. MetodestorageApi.uploadFilemenangani transfer.
const uploadRequest = new GroupDocsAnnotationCloud.UploadFileRequest({
path: remoteFilePath,
file: fileBytes
});
await storageApi.uploadFile(uploadRequest);
- Retrieve Annotations -
GetAnnotationsRequestmembangun objek permintaan dengan referensiFileInfo. PemanggilanannotationsApi.getAnnotationsmengembalikan koleksi objek anotasi, dari mana ID diekstrak.
const getAnnotationsRequest = new GroupDocsAnnotationCloud.GetAnnotationsRequest({
fileInfo: fileInfo
});
const annotationsResult = await annotationsApi.getAnnotations(getAnnotationsRequest);
- Delete Annotations - Jika ada ID,
DeleteAnnotationsRequestdiisi dan diteruskan keannotationsApi.deleteAnnotations, yang secara permanen menghapus anotasi dari PDF yang disimpan.
const deleteRequest = new GroupDocsAnnotationCloud.DeleteAnnotationsRequest({
fileInfo: fileInfo,
annotationIds: annotationIds
});
await annotationsApi.deleteAnnotations(deleteRequest);
- Download Clean PDF - Akhirnya,
DownloadFileRequestmengambil file yang diperbarui, danfs.writeFileSyncmenuliskannya ke sistem file lokal.
const downloadRequest = new GroupDocsAnnotationCloud.DownloadFileRequest({
path: remoteFilePath
});
const fileStream = await storageApi.downloadFile(downloadRequest);
fs.writeFileSync(localOutputPath, fileStream);
Untuk definisi kelas dan metode yang detail, lihat referensi API.
Menginstal dan Mengonfigurasi GroupDocs.Annotation Cloud SDK for Node.js
SDK didistribusikan sebagai paket npm. Instal dengan perintah di bawah ini dan kemudian require di proyek Anda.
npm install groupdocs-annotation-cloud
Anda juga dapat mengunduh paket terbaru secara langsung dari halaman rilis GitHub atau URL unduhan resmi.
Setelah instalasi, impor perpustakaan dan buat objek konfigurasi seperti yang ditunjukkan dalam contoh kode:
const GroupDocsAnnotationCloud = require("@groupdocs/annotation-cloud");
const config = new GroupDocsAnnotationCloud.Configuration("YOUR_CLIENT_ID", "YOUR_CLIENT_SECRET");
Pastikan lingkungan runtime Anda memenuhi persyaratan versi Node.js dan Anda memiliki akun GroupDocs yang valid untuk memperoleh kredensial klien.
Opsi dan Pengaturan Penghapusan Anotasi
SDK menyediakan beberapa parameter yang dapat Anda sesuaikan:
- clientId / clientSecret - Kredensial untuk autentikasi OAuth. Atur mereka di konstruktor
Configuration. - fileInfo.filePath - Jalur PDF di penyimpanan GroupDocs Cloud. Sesuaikan ini jika Anda menyimpan file di folder yang berbeda.
- annotationIds - Sebuah array ID yang dikembalikan oleh
GetAnnotations. Menyediakan subset memungkinkan penghapusan selektif.
Pengaturan tambahan seperti batas waktu permintaan dan konfigurasi proxy tersedia dalam dokumentasi SDK; lihat dokumentasi resmi untuk daftar lengkap.
Praktik Terbaik untuk Menghapus Anotasi PDF melalui REST
- Validasi ID Anotasi - Selalu periksa bahwa ID yang ingin Anda hapus memang ada; mencoba menghapus ID yang tidak ada dapat menyebabkan error 404.
- Gunakan HTTPS - Semua panggilan API harus dilakukan melalui HTTPS untuk melindungi kredensial dan data dokumen Anda.
- Tangani File Besar dengan Unggahan Berpotongan - Untuk PDF yang lebih besar dari 100 MB, pilih endpoint unggahan multipart untuk menghindari timeout.
- Catat Respons API - Simpan ID permintaan dan respons untuk jejak audit serta mempermudah pemecahan masalah.
- Gunakan Kembali Token Akses - Cache token OAuth hingga kedaluwarsa untuk mengurangi beban otentikasi.
Pertanyaan Umum
Bagaimana cara mengautentikasi dengan GroupDocs.Annotation Cloud API?
Dapatkan client ID dan secret dari akun GroupDocs Anda, lalu minta token akses melalui endpoint OAuth. Lihat dokumentasi resmi untuk detail.Bisakah saya menghapus anotasi tertentu alih-alih semuanya?
Ya, berikan ID anotasi yang ingin Anda hapus dalam DeleteAnnotationsRequest. SDK mengembalikan daftar ID anotasi setelah panggilan GetAnnotations.Bagaimana cara menghapus objek Anotasi dari PDF dengan REST di Node.JS?
Gunakan GroupDocs.Annotation Cloud SDK for Node.js untuk memanggil endpoint DeleteAnnotations setelah mengambil ID anotasi. Alur kerja lengkap ditunjukkan dalam contoh kode dan bagian cURL panduan ini.Lisensi apa yang diperlukan untuk penggunaan produksi?
Lisensi berbayar diperlukan untuk produksi. Anda dapat memperoleh lisensi sementara dari halaman lisensi sementara saat melakukan evaluasi.
