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