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