إزالة الملاحظات غير المرغوب فيها أو التظليل أو علامات الحبر من ملفات 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.
# 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. قم بتثبيتها باستخدام الأمر أدناه ثم استخدم require في مشروعك.
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 ميغابايت، يفضَّل استخدام نقطة النهاية للتحميل المتعدد لتجنب انتهاء المهلة.
- تسجيل استجابات API - احفظ معرفات الطلبات والاستجابات لسجلات التدقيق وتسهيل استكشاف الأخطاء.
- إعادة استخدام رموز الوصول - خزن رمز OAuth في الذاكرة المؤقتة حتى انتهاء صلاحيته لتقليل عبء المصادقة.
الأسئلة الشائعة
كيف يمكنني المصادقة مع GroupDocs.Annotation Cloud API? احصل على معرف عميل وسر من حسابك في GroupDocs، ثم اطلب رمز وصول عبر نقطة النهاية OAuth. راجع الوثائق الرسمية للحصول على التفاصيل.
هل يمكنني حذف تعليقات توضيحية محددة بدلاً من جميعها؟
نعم، قدم معرفات التعليقات التوضيحية التي تريد إزالتها في DeleteAnnotationsRequest. تُعيد SDK قائمة بمعرفات التعليقات التوضيحية بعد استدعاء GetAnnotations.كيف يمكنني إزالة كائنات التعليق التوضيحي من PDF باستخدام REST في Node.JS؟
استخدم GroupDocs.Annotation Cloud SDK for Node.js لاستدعاء نقطة النهاية DeleteAnnotations بعد استرجاع معرفات التعليقات التوضيحية. يتم عرض سير العمل الكامل في مثال الشيفرة وقسم cURL في هذا الدليل.ما هو الترخيص المطلوب للاستخدام في الإنتاج؟
يلزم الحصول على ترخيص مدفوع للإنتاج. يمكنك الحصول على ترخيص مؤقت من صفحة صفحة الترخيص المؤقت أثناء التقييم.
