استخراج صفحات من PDF
أداة تنتزع صفحات معيّنة من ملف PDF كبير وتضعها في ملف جديد مستقل، دون التأثير على بقية المستند أو تعديل ترتيبه الأصلي. تناسب من يحتاج بندًا واحدًا من عقد طويل أو صفحة واحدة من تقرير، ليرسلها بمفردها بدل الملف بأكمله بتفاصيله الأخرى.
شغّلها أونلاين
شغّل هذه المهمة على خوادمنا باستخدام حسابك. الأدوات المجانية تعمل داخل متصفحك، أما هذه فتُخصم من رصيدك في KIT حسب السعر الموضّح أعلاه.
صفحات محددة، ملف جديد
تحدّد أرقام الصفحات التي تريد استخراجها من ملف PDF الأصلي — صفحة واحدة أو عدة صفحات متفرقة — فتخرج الأداة ملفًا جديدًا يضم هذه الصفحات فقط، بينما يبقى الملف الأصلي كما هو دون تعديل أو حذف من محتواه. يمكن تكرار العملية بأرقام مختلفة للحصول على أكثر من ملف مستقل من المستند نفسه، كل ملف يخصّ جهة مختلفة حسب الحاجة، دون أن تطّلع كل جهة على ما لا يعنيها.
الفرق بين الاستخراج والتقسيم
يختلف استخراج الصفحات عن التقسيم الكامل: هنا تختار صفحات معيّنة فقط، بأي ترتيب أو تفرّق داخل المستند، دون الحاجة لتقسيم الملف كله إلى أجزاء متتالية تغطي كل صفحاته من أوله لآخره. يفيد هذا عند الحاجة لبند واحد من عقد من ثلاثين صفحة، أو صفحة توقيع بعينها من ملف طويل، بينما يفيد التقسيم الكامل أكثر عند الحاجة لتوزيع المستند كله على عدة جهات مختلفة دفعة واحدة.
مثال شائع: بند واحد من عقد
يطلب أحد الأطراف أحيانًا الاطلاع على بند معيّن من عقد دون بقية تفاصيله السرية أو مبالغه المالية، أو تحتاج جهة التوظيف صفحة الخبرات فقط من ملف سيرة ذاتية طويل مرفق بعشر صفحات شهادات وتزكيات لا علاقة لها بالطلب. استخراج الصفحة المطلوبة هنا يعطي كل طرف ما يخصّه فقط دون كشف بقية المستند أو تفاصيله الأخرى غير ذات الصلة بطلبه المحدد.
السعر والتنفيذ
السعر ثابت عند $0.002 للطلب الواحد، بغضّ النظر عن عدد الصفحات المستخرجة، طالما بقي الملف الأصلي ضمن حد 200 صفحة و25 MB للملف الأصلي قبل الاستخراج. الاستخدام من هذه الصفحة مباشرة، وهو الأنسب لطلب عابر لا يتكرر، ومتاح أيضًا عبر الـAPI لمن يستخرج صفحات محددة بانتظام ضمن مسار عمل داخلي، مثل نظام يفرز صفحات التوقيع من عقود واردة يوميًا بأعداد كبيرة.
حالات الاستخدام
بند سري واحد من عقد طويل
تستخرج شركة الواحة للتجارة المحدودة بند السعر فقط من عقد توريد طويل لمشاركته مع طرف ثالث دون بقية الشروط.
صفحة الخبرة من سيرة ذاتية طويلة
يستخرج مدير التوظيف صفحة الخبرات العملية فقط من ملف سيرة ذاتية لسارة النعيمي مرفق بعشر صفحات شهادات.
صفحة توقيع من محضر اجتماع
يستخرج عبدالله المنصوري صفحة التوقيعات فقط من محضر اجتماع طويل ليؤكد حضور الأطراف دون إرسال باقي المحضر.
الأسئلة الشائعة
هل يتأثر الملف الأصلي عند استخراج صفحات منه؟
لا، يبقى الملف الأصلي كما هو؛ تُنسخ الصفحات المطلوبة إلى ملف جديد منفصل.
هل يمكن استخراج صفحات متفرقة وليست متتالية؟
نعم، يمكن تحديد صفحات غير متتالية، مثل الصفحة 2 والصفحة 15 معًا في الملف الناتج.
ما ترتيب الصفحات في الملف الجديد؟
تظهر بالترتيب الذي تحدده عند الاختيار، وليس بالضرورة ترتيبها في الملف الأصلي.
كم تكلفة استخراج صفحتين من ملف طويل؟
$0.002 للطلب الواحد، ثابتة بغضّ النظر عن عدد الصفحات المستخرجة.
هل تُحفظ نسخة من الملف الأصلي بعد الاستخراج؟
لا، يُستخدم الملف أثناء المعالجة فقط ثم يُحذف مع الملف الناتج بعد فترة قصيرة.
هل تعمل هذه الخدمة على الجوال؟
نعم، يمكن رفع الملف وتحديد الصفحات من متصفح الجوال مباشرة.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/pdf/extract-pages \
-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/extract-pages", {
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/extract-pages",
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/extract-pages", 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/extract-pages", 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.extract_pages",
"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 | حجم المدخلات يتجاوز الحد المسموح لهذه المهمة — قسّم الملف أو صغّره. |