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