تعيين صلاحيات PDF للطباعة والنسخ والتحرير والتعليق
تحوّل أداة التحقق من صلاحيات PDF قائمة خيارات الوصول التي تقدمونها إلى مجموعة صلاحيات واضحة وثابتة.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
أدخلوا مرجع ملف PDF وأي مجموعة من print وcopy وedit وannotate. تستخدم النتيجة الأسماء القياسية بالأحرف الصغيرة، وتحذف التكرار، وتلتزم بترتيب ثابت. إذا تضمنت القائمة اسماً غير مدعوم، يفشل الطلب برسالة واضحة بدلاً من تمرير سياسة ملتبسة إلى الخطوة التالية في مسار معالجة المستندات. وبذلك تظل الإعدادات الآلية متسقة وسهلة المراجعة.
حدّدوا السياسة قبل تعديل المستند
تبدأ إجراءات تأمين ملفات PDF غالباً بكائن إعداد صغير قبل أن تتعامل مكتبة التشفير أو خدمة المستندات مع الملف بوقت طويل. ويستحق هذا الإعداد مستوى التحقق نفسه الذي يستحقه المستند. فقد يُتجاهل اسم مكتوب خطأ مثل “printing”، أو تفسره المكتبات بطرق مختلفة، أو تخزنه كما لو كان صالحاً. توفر هذه الإمكانية عقداً محدداً عند هذه النقطة. أرسلوا مرجع ملف PDF مع أسماء الصلاحيات التي تريدون منحها. تتحقق الأداة من وجود المرجع ومن أن permissions مصفوفة لا تحتوي إلا على print وcopy وedit وannotate، ثم تعيد الأسماء المقبولة بالترتيب القياسي. وهي لا تنزّل ملف PDF ولا تفحصه أو تشفّره أو تعيد كتابته. إن فصل التحقق يجعل النتيجة مدخلاً آمناً لخطوة حماية لاحقة أو قاعدة بيانات للسياسات أو شاشة اعتماد أو سجل تدقيق. كما يتيح للتطبيق رفض الاختيار الخاطئ فوراً قبل بدء عملية مستندية أبطأ أو أعلى تكلفة.
كيف ينتج التوحيد نتيجة ثابتة
تأتي قوائم الصلاحيات كثيراً من مربعات الاختيار أو معاملات سطر الأوامر أو الإعدادات المستوردة أو القواعد المدمجة. وقد تؤدي هذه المصادر إلى اختلاف حالة الأحرف، ووجود مسافات زائدة، وتكرار القيم، وعدم ثبات ترتيبها. تزيل الأداة المسافات المحيطة بكل سلسلة وتحولها إلى أحرف صغيرة قبل مقارنتها بالمفردات المدعومة. وتدمج الصلاحيات المكررة في عنصر واحد، لأن الصلاحيات تمثل مجموعة لا تسلسلاً من الأوامر. يكون ترتيب المخرجات دائماً print ثم copy ثم edit ثم annotate مهما كان ترتيب الإدخال. وتعد المصفوفة الفارغة صالحة، إذ تمثل سياسة لا تمنح أياً من الصلاحيات الأربع. أما القيمة غير النصية أو الاسم المجهول فيؤديان إلى رفض الطلب كله بخطأ إدخال غير صالح؛ فلا تحذف الأداة خياراً غير مدعوم بصمت. هذا السلوك الشامل مهم في إعدادات الأمان لأن قبول جزء من السياسة قد يحرّف مقصد مقدم الطلب. كما يسهل مقارنة الناتج الحتمي وتخزينه وتوقيعه ومراجعته واختباره.
استخدموا المجموعة الموحّدة ضمن مسار PDF متكامل
المصفوفة المعادة وصف لسياسة تم التحقق منها، وليست مستنداً معدلاً. مرروها إلى المكوّن الذي يطبق فعلياً التشفير أو قيود المالك، وراجعوا وثائقه لمعرفة السلوك الدقيق في برامج القراءة وأنظمة التشغيل. صلاحيات PDF هي عادة ضوابط إرشادية تفرضها البرامج المتوافقة، وليست بديلاً عن التحكم في الوصول أو التوزيع الحذر أو التشفير بكلمة مرور مناسبة. ومع ذلك، يحقق فصل التحقق عن التطبيق فوائد عملية. يستطيع نموذج الويب عرض ملخص واضح قبل الإرسال، ويمكن لواجهة API تخزين تمثيل موحّد بدلاً من مصفوفات متعددة متكافئة، كما يمكن للعملية الدفعية التوقف عند أول اسم مجهول. ولأن هذه الإمكانية لا تستخدم خدمة شبكية ولا تفك ترميز ملف PDF المقدم، فإنها تعمل في المتصفح بالنتيجة الحتمية نفسها التي تعيدها API. الاستخدام في المتصفح مجاني، أما طلبات API الآلية فتستخدم السعر الأساسي المنشور $0.002. ولا تعيد أداة التحقق محتوى المستند أو تحتفظ به.
حالات الاستخدام
التحقق من نموذج الصلاحيات
وحّدوا قيم مربعات الاختيار قبل إرسال طلب حماية PDF، واعرضوا للمستخدم السياسة المقبولة بدقة.
توحيد سياسات المستندات المخزنة
أزيلوا التكرار واختلاف الترتيب قبل حفظ مجموعات الصلاحيات في قاعدة بيانات أو سجل تدقيق.
رفض أخطاء الإعداد غير الآمنة
أوقفوا المسار الدفعي عندما يرسل أحد التكاملات اسم صلاحية مجهولاً بدلاً من تجاهله بصمت.
الأسئلة الشائعة
هل تعدّل هذه الإمكانية ملف PDF أو تشفّره؟
لا. إنها تتحقق من مرجع PDF وأسماء الصلاحيات، ثم تعيد مجموعة موحّدة لتطبيقها باستخدام أداة مستقلة لحماية PDF.
ما أسماء الصلاحيات المدعومة؟
الأسماء القياسية المدعومة هي print وcopy وedit وannotate.
ماذا يحدث عند وجود اسم مجهول؟
يفشل الطلب بخطأ إدخال غير صالح يحدد القيمة المجهولة ويسرد الخيارات المدعومة.
هل تُقبل القيم المكررة والمكتوبة بأحرف كبيرة؟
نعم. تزال المسافات المحيطة، وتحول الأسماء إلى أحرف صغيرة، وتدمج الصلاحيات المكررة.
هل يمكن تقديم قائمة صلاحيات فارغة؟
نعم. تظل المصفوفة الفارغة كما هي، وتعني عدم منح أي من الصلاحيات الأربع المدعومة.
ما تكلفة الاستخدام؟
التشغيل في متصفح هذه الصفحة مجاني. وتكلف الأتمتة عبر API مبلغ $0.002 لكل طلب.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/pdf/permissions-set \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"kit://upl_example_pdf","permissions":["print","copy"]}'const res = await fetch("https://api.kit.forhosting.com/pdf/permissions-set", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "kit://upl_example_pdf",
"permissions": [
"print",
"copy"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/permissions-set",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "kit://upl_example_pdf",
"permissions": [
"print",
"copy"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/permissions-set", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"kit://upl_example_pdf","permissions":["print","copy"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"kit://upl_example_pdf","permissions":["print","copy"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/permissions-set", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"pdf": "kit://upl_example_pdf",
"permissions": [
"print",
"copy"
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.permissions_set",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_mb | 25 |
max_pages | 200 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |