نظّف ملف PDF من بياناته الوصفية
أداة تنظيف البيانات الوصفية لملف PDF: تمسح العنوان والمؤلف والبرنامج المصدر وتواريخ الإنشاء والتعديل دفعة واحدة، وتترك محتوى الصفحات كما هو. تناسب من يشارك مستندًا خارج جهته ولا يريد أن تكشف بياناته الخفية معلومات لم يقصد نشرها. العملية تتم في ثوانٍ ولا تمس محتوى الصفحات إطلاقًا.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
ما الذي تكشفه البيانات الوصفية دون أن تنتبه؟
قد يحمل حقل المؤلف اسم موظف غادر جهتك منذ سنوات، وقد يحمل حقل العنوان اسمًا داخليًا لمشروع لم يُعلن بعد، وقد يكشف اسم البرنامج المصدر أن الملف حُرِّر بأداة معينة تفضّل ألا يعرفها الطرف الآخر. كل هذا يسافر مع الملف دون أن يظهر على الصفحة، وقد يقرأه أي شخص يفتح خصائص الملف في برنامج القراءة. المفارقة أن كثيرين يراجعون محتوى الصفحات بعناية فائقة قبل الإرسال، بينما يتجاهلون هذه الطبقة الخفية تمامًا رغم أنها قد تكشف أكثر مما تكشفه الصفحة نفسها.
ماذا تحذف الأداة بالضبط؟
تمسح العنوان والمؤلف والموضوع والكلمات المفتاحية واسم البرنامج المصدر وتاريخي الإنشاء والتعديل، وتترك هذه الحقول فارغة أو بقيمة عامة محايدة. لا تلمس الأداة نصًا في الصفحات ولا صورة مضمّنة ولا ترتيب المحتوى؛ التنظيف مقصور على طبقة البيانات الوصفية وحدها. بعد التنظيف، يبدو الملف من الخارج بلا هوية واضحة لمن أنشأه أو متى، تمامًا كأنه وُلد للتو، بينما يبقى محتواه المرئي كما وضعته أنت بالضبط دون أي فارق.
خطوة قبل الإرسال، لا بعده
الوقت المناسب للتنظيف هو قبل رفع الملف على بوابة حكومية أو إرساله في مناقصة أو توزيعه على وسائل الإعلام — بعد أن يغادر الملف جهتك، لا سبيل لسحب النسخة التي وصلت. اجعل التنظيف خطوة أخيرة ثابتة في مسار أي مستند مخصَّص للخارج. كثير من الجهات تضيف هذه الخطوة إلى قائمة تحقق نهائية ثابتة قبل كل إرسال خارجي، إلى جانب مراجعة المحتوى نفسه، فتصبح عادة تلقائية لا قرارًا يُتخذ في كل مرة من جديد.
الفرق بين التنظيف والقراءة
إن أردت أولًا معرفة ما تحمله بيانات الملف قبل أن تقرر حذفها، استخدم أداة القراءة المخصصة لذلك ضمن الفئة نفسها؛ أما هذه الأداة فتحذف مباشرة دون عرض القيم القديمة. كثيرون يستخدمون الأداتين معًا: قراءة سريعة للتأكد، ثم تنظيف نهائي. هذا التسلسل يمنحك طبقة أمان إضافية: تتأكد أولًا من طبيعة ما ستفقده قبل أن يصبح القرار نهائيًا لا رجعة فيه، بدل الحذف الأعمى الذي قد يزيل معلومة كنت تحتاجها لاحقًا.
حالات الاستخدام
عرض مناقصة بلا آثار داخلية
سارة النعيمي تعدّ عرضًا تقنيًا لمناقصة حكومية وتنظّف بياناته الوصفية قبل رفعه، حتى لا يظهر اسم الموظف الذي أعدّ المسودة الأولى للمنافسين.
نشرة صحفية دون رقم إصدار داخلي
شركة الواحة للتجارة المحدودة تحذف بيانات الإصدار الداخلي من نشراتها الصحفية بصيغة PDF قبل توزيعها على وسائل الإعلام.
عقود دون أسماء المحررين السابقين
محمد الحربي، مستشار قانوني، ينظّف ملفات العقود قبل إرسالها للطرف الآخر، فلا تظهر أسماء موظفي مكتبه الذين حرروا المسودات السابقة.
الأسئلة الشائعة
هل يمسح التنظيف محتوى الصفحات أيضًا؟
لا، يطال البيانات الوصفية فقط: العنوان والمؤلف والبرنامج المصدر والتواريخ. النص والصور داخل الصفحات يبقيان كما هما تمامًا.
هل يمكن استرجاع البيانات بعد حذفها؟
لا، الحذف نهائي على الملف الناتج؛ لهذا يُنصح بقراءة البيانات أولًا إن أردت التأكد مما ستفقده قبل تنظيفه.
هل تحتفظون بنسخة من بياناتي القديمة بعد الحذف؟
لا، تُحذف نسخة الرفع بكل بياناتها من خوادمنا فور تسليم الملف النظيف، ولا نستخرج أو نخزّن القيم القديمة في أي مكان.
كم يكلف تنظيف ملف واحد؟
$0.002 لكل ملف، سعر ثابت مهما كان عدد الحقول التي تحتوي بيانات.
متى يجب أن أستخدم هذه الأداة تحديدًا؟
قبل أي مشاركة خارج جهتك: مناقصة، نشرة صحفية، ملف مرفوع على بوابة حكومية، أو عرض سعر لعميل لا تريد أن يرى تفاصيل داخلية عنه.
هل يعمل مع الملفات المحمية بكلمة مرور؟
يحتاج الملف أن يكون مفتوحًا دون كلمة مرور أولًا؛ إن كان محميًا، أزل الحماية عنه بأداة فتح PDF المخصصة قبل تنظيف بياناته.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/pdf/metadata-clean \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf"}'const res = await fetch("https://api.kit.forhosting.com/pdf/metadata-clean", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/metadata-clean",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/metadata-clean", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pdf":"https://ejemplo.com/documento.pdf"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/metadata-clean", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"pdf": "https://ejemplo.com/documento.pdf"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.metadata_clean",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
413 | input_too_large | حجم المدخلات يتجاوز الحد المسموح لهذه المهمة — قسّم الملف أو صغّره. |