قسّم PDF حسب نطاق الصفحات في ملف جديد
يمكنكم تقسيم ملف PDF حسب نطاق الصفحات عندما تحتاجون إلى قسم متصل من مستند كبير من دون إرسال بقية الصفحات أو تخزينها أو مراجعتها.
شغّل الأداة مجانًا
تعمل هذه الأداة داخل متصفحك — مجانًا، ولا تُرسل بياناتك إلى أي خادم
قدّموا ملف PDF الأصلي وحددوا صفحتي البداية والنهاية بالترقيم المعتاد الذي يبدأ من 1. ستكون النتيجة ملف PDF منفصلاً يضم النطاق شاملاً طرفيه وبترتيبه الأصلي. يبقى المصدر من دون تغيير، ويُرفض النطاق غير الصالح بوضوح بدلاً من إنشاء ملف جزئي أو مضلل.
اختاروا نطاقاً شاملاً بأرقام صفحات واضحة
تتعامل هذه الأداة مع أول صفحة يعرضها قارئ PDF اعتيادي على أنها الصفحة 1. أدخلوا صفحة البداية وصفحة النهاية، وسيشمل الملف الجديد كلا الحدين. لذلك فإن طلب الصفحات من 4 إلى 7 ينتج أربع صفحات: 4 و5 و6 و7. تمنع هذه القاعدة البسيطة مفاجآت الفهرسة التي تبدأ من الصفر والشائعة في مكتبات البرمجة، وتجعل الطلب الآلي مطابقاً لما يراه المستخدم على الشاشة. قبل التقسيم، تحققوا مما إذا كان المستند يتضمن غلافاً مطبوعاً أو صفحات تمهيدية غير مرقمة، لأن الأرقام المطبوعة قد تختلف عن مواضع الصفحات في القارئ. تستخدم القدرة المواضع الفعلية لصفحات PDF، لا الأرقام المرسومة داخل محتوى الصفحة. يجب أن تكون البداية أقل من النهاية أو مساوية لها، وأن تكون القيمتان عددين صحيحين موجبين. إذا تجاوز أي حد عدد صفحات المستند الأصلي، أعاد الطلب خطأ في الإدخال. لا تختصر الأداة النطاق بصمت، ولا تستبدل الحد بآخر صفحة، ولا تنتج ملفاً ناقصاً يمكن أن يُفهم خطأً على أنه القسم المطلوب.
تعرّفوا على ما تعيده أداة التقسيم
ينشئ الطلب الناجح ملف PDF جديداً لا يحتوي إلا على الصفحات الواقعة داخل النطاق المتصل المحدد. لا يُعدّل الملف الأصلي، ولذلك يمكنكم استخدامه مرة أخرى لنطاق مختلف أو الاحتفاظ به بوصفه المستند المعتمد. إلى جانب ملف PDF الجديد، تعرض الاستجابة عدد صفحات المصدر وعدد الصفحات المستخرجة وقيمتي البداية والنهاية المقبولتين. تجعل هذه الحقول التحقق الآلي سهلاً؛ إذ يمكن لمسار عمل أن يؤكد أن الصفحات من 12 إلى 18 أعطت سبع صفحات قبل إرفاق النتيجة بملف قضية أو سجل عميل أو رسالة بريد إلكتروني. العملية حتمية، ولا يعتمد منطق التقسيم على طلب شبكة أو اختيار عشوائي أو استدلال نموذج أو الوقت الحالي. تشغّل نسخة المتصفح الخوارزمية الأساسية نفسها التي يشغّلها معالج API. صُممت هذه القدرة عمداً لنطاق متصل واحد. إذا كانت المهمة تحتاج إلى صفحات متفرقة أو معاد ترتيبها أو إلى عدة ملفات ناتجة، فاستخدموا مساراً لاستخراج الصفحات أو إعادة ترتيبها أو تقسيمها عموماً، على أن يكون مصمماً لنمط الاختيار المختلف ذلك.
أنشئوا مسارات مستندات آمنة بالتحقق من النطاق
تزداد أهمية التحقق من النطاق عندما تأتي أرقام الصفحات من نظام آخر. قد يشير فهرس إلى أن فاتورة تقع في الصفحات من 31 إلى 34، بينما لا يضم مسح لاحق سوى 30 صفحة لأن الرفع انقطع قبل اكتماله. إن إنشاء الصفحات من 31 إلى 34 كنتيجة فارغة أو مختصرة سيخفي المشكلة السابقة في المسار. تقارن هذه الأداة الحدين بعدد الصفحات الذي جرى تحليله، وترفض الطلب عندما يقع النطاق خارج المستند. تعاملوا مع هذا الخطأ بوصفه إشارة إلى عزل الملف أو تحديث الفهرس أو طلب رفع نسخة كاملة. عند الاستخدام التفاعلي، تحققوا من العدد في القارئ وأعيدوا المحاولة بحدود صالحة. وعند استخدام API، سجّلوا النطاق المطلوب وعدد الصفحات المعاد من دون تسجيل المستند نفسه، ولا سيما عندما يحتوي PDF على معلومات شخصية أو مالية. التسعير بسيط: تبلغ تكلفة كل طلب API مقدار $0.002، بينما يتاح التنفيذ محلياً في المتصفح. ولأن النتيجة ملف مستقل، امنحوها اسماً وصفياً يتضمن معرّف المصدر والنطاق لتسهيل التدقيق لاحقاً.
حالات الاستخدام
افصلوا قسماً من عقد
أنشئوا ملف PDF جديداً يضم صفحات الملحق التي طلبها المراجع من دون مشاركة الشروط التجارية غير المرتبطة في الاتفاق الكامل.
وجّهوا فاتورة من دفعة مجمعة
استخدموا الحدود المحفوظة في خطوة الفهرسة لفصل فاتورة مورد من مسح شهري مجمع وإرفاقها بالسجل الصحيح.
شاركوا فصلاً من تقرير
استخرجوا فصلاً متصلاً من تقرير تقني طويل ليحصل زميل على مستند أقصر وأكثر تركيزاً، مع بقاء الملف الرئيسي من دون تغيير.
الأسئلة الشائعة
هل تدخل صفحتا البداية والنهاية في النطاق؟
نعم. يشمل النطاق طرفيه، ولذلك تنتج الصفحات من 3 إلى 5 ملف PDF من ثلاث صفحات يضم 3 و4 و5.
ماذا يحدث إذا تجاوز النطاق عدد صفحات PDF؟
يفشل الطلب بخطأ إدخال غير صالح يذكر عدد صفحات المستند، ولا يُعاد أي ملف PDF جزئي.
هل يغيّر التقسيم ملف PDF الأصلي؟
لا. تُكتب الصفحات المحددة في ملف PDF جديد، ولا تتغير قيمة المصدر مطلقاً.
هل يمكن طلب صفحات غير متتابعة؟
لا. تقبل هذه القدرة نطاقاً متصلاً واحداً. استخدموا أداة استخراج عند الحاجة إلى صفحات منفصلة أو معاد ترتيبها.
ما التكلفة؟
سعر API هو $0.002 لكل طلب. ويمكن لنسخة المتصفح تنفيذ العملية الحتمية نفسها محلياً.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/pdf/split-by-range \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pdf":"https://ejemplo.com/documento.pdf","start_page":1,"end_page":2}'const res = await fetch("https://api.kit.forhosting.com/pdf/split-by-range", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/split-by-range",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pdf": "https://ejemplo.com/documento.pdf",
"start_page": 1,
"end_page": 2
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/split-by-range", 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","start_page":1,"end_page":2}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pdf":"https://ejemplo.com/documento.pdf","start_page":1,"end_page":2}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/split-by-range", 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",
"start_page": 1,
"end_page": 2
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.split_by_range",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |