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