راكب ملفي PDF وصِف كل صفحة مدمجة
توضح أداة تراكب ملفي PDF محتوى الصفحات المكدسة قبل إنشاء المستند النهائي أو مراجعته.
شغّل الأداة مجانًا
أدخل وصفاً مرتباً لكل صفحة من ملف PDF الأساسي، ووصفاً لكل صفحة من ملف PDF العلوي. تحافظ النتيجة على اقتران الصفحات، وتبين ترتيب الطبقات، وتنتج وصفاً موجزاً لكل صفحة مدمجة. تفيد الأداة خصوصاً في فحص قوالب الأختام والأوراق ذات الترويسة وعلامات الاعتماد والعناصر الرسومية المتكررة. يُرفض الطلب إذا اختلف عدد الصفحات، لأنه لا يمكن عندئذ تحديد صفحة علوية مقابلة لكل صفحة أساسية بصورة لا لبس فيها.
صِف ملفي PDF وفق ترتيب الصفحات
ابدأ بمصفوفتين تضمان نصاً مستخرجاً أو أوصافاً مرئية موجزة، على أن توجد سلسلة نصية واحدة لكل صفحة PDF. تمثل المصفوفة pages_base المستند الموجود في الأسفل، بينما تمثل pages_overlay المستند الموضوع فوقه. حافظ على ترتيب الصفحات الأصلي في كل مصفوفة: يقترن الوصف الأساسي الأول بالوصف العلوي الأول، والثاني بالثاني، وهكذا. يمكن أن يذكر الوصف النصوص أو الشعارات أو الأختام أو الحدود أو حقول النماذج أو أي عنصر آخر يهم في المراجعة. استخدم سلسلة فارغة عندما تكون الصفحة الفعلية خالية، ولا تحذف ذلك العنصر لأن حذفه يزيح جميع الاقترانات اللاحقة. تصف هذه الإمكانية تراكباً مقترحاً أو مستخرجاً، ولا تعدل وحدات البايت في ملف PDF. لذلك تلائم فحوص سير العمل وسجلات التدقيق والمعاينات المقروءة عندما يكون نظام آخر قد استخرج المحتوى أو يعرف تصميم القالب. يجب أن يكون الحقلان مصفوفتين غير فارغتين، وأن يكون كل عنصر سلسلة نصية، كما يمنع حد الإدخال تنفيذ مهمة ضخمة من دون قصد.
افهم نتيجة التراكب
تحدد الاستجابة لكل رقم صفحة طبقة الأساس السفلية وطبقة التراكب العلوية. ترتيب الطبقات الصريح مهم؛ فالختم أو الترويسة أو التعليق في ملف PDF العلوي يُرسم منطقياً بعد المستند الموجود تحته، وقد يغطي جزءاً منه في الملف المعروض. ولأن الأوصاف النصية البسيطة لا تتضمن إحداثيات أو ألواناً أو شفافية أو خطوطاً أو حدوداً دقيقة للعناصر، فلا تدعي الأداة اكتشاف التعارض على مستوى وحدات البكسل. وبدلاً من ذلك تقدم بياناً حتمياً للمواد الموصوفة التي تسهم في كل صفحة مركبة. تُعامل الصفحات الخالية بصورة خاصة. إذا كانت الصفحة العلوية خالية، توضح الاستجابة أن محتوى الأساس يظل بلا حجب؛ وإذا كانت صفحة الأساس خالية، فلا تسهم إلا الطبقة العلوية بالمحتوى الموصوف؛ وإذا كانتا خاليتين، فيُسجل ذلك مباشرة. تُوحّد المسافات كي تظل الأوصاف المنسوخة من أدوات الاستخراج مقروءة وثابتة. وتنتج المدخلات نفسها دائماً تسلسل الصفحات والصياغة نفسيهما، مما يجعل النتائج موثوقة في الاختبارات الآلية وسجلات الاعتماد.
اكتشف أخطاء عدد الصفحات قبل الإنتاج
لا يكون تراكب الصفحات ذا معنى إلا إذا كانت لكل صفحة أساسية صفحة علوية مقابلة واحدة بالضبط. لذلك تقارن الإمكانية طولي المصفوفتين قبل إنشاء أي وصف، وتعيد خطأ إدخال غير صالح عندما يختلفان. يكشف هذا السلوك الصارم خطأ شائعاً في إنتاج المستندات، مثل تطبيق قالب ختم من صفحتين على عقد من ثلاث صفحات، أو إضافة صفحة غلاف إلى أحد الملفين دون الآخر. صحح المستندات المصدرية أو أضف عمداً وصف صفحة فارغة حتى تتطابق البنيتان، ثم نفذ الطلب مرة أخرى. تتضمن الاستجابة عدد الصفحات المتحقق منه، والترتيب العام من الأسفل إلى الأعلى، وسجلاً مرقماً لكل زوج. وبذلك يمكنك مقارنة النتيجة بأمر العمل أو إدخالها في واجهة مراجعة. تبلغ تكلفة الأتمتة عبر API $0.002 لكل طلب. ولأن المعالجة محلية وحتمية ولا تستخدم الشبكة أو النماذج، فلا تُرسل أوصاف الصفحات الحساسة إلى مزود تحليل خارجي، كما لا تتغير الصياغة بين عمليات التنفيذ ذات المدخلات نفسها.
حالات الاستخدام
راجع ختم الاعتماد
تحقق من اقتران كل صفحة في العقد بوصف ختم الاعتماد أو المراجعة المقصود.
افحص قوالب الترويسة
صِف كيفية وضع الترويسة أو التذييل أو الحدود الخاصة بكل صفحة فوق المحتوى الموجود.
تحقق من تجميع المستند
اكتشف صفحة قالب ناقصة أو زائدة قبل أن يدمج عارض لاحق ملفات PDF المخصصة للإنتاج.
الأسئلة الشائعة
هل تنشئ هذه الأداة ملف PDF جديداً؟
لا. تعيد وصفاً منظماً للتراكب صفحة بصفحة، ولا تعدل وحدات بايت PDF أو تعرضها.
أي ملف PDF يكون في الأعلى؟
تمثل pages_overlay الطبقة العلوية، وتمثل pages_base الطبقة السفلية.
ماذا يحدث إذا اختلف عدد الصفحات؟
يفشل الطلب مع خطأ إدخال غير صالح يعرض عددي الصفحات.
كيف أمثل صفحة خالية؟
حافظ على موضعها في المصفوفة واستخدم سلسلة فارغة، كي تظل الصفحات اللاحقة مقترنة بصورة صحيحة.
هل يمكن اكتشاف ما إذا كان الختم يخفي كلمات محددة؟
لا. لا توفر الأوصاف النصية معلومات الموضع أو الشفافية؛ لذلك تصف النتيجة الطبقات لا الحجب على مستوى وحدات البكسل.
ما التكلفة؟
تبلغ تكلفة كل طلب API $0.002.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/pdf/overlay-two-files \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages_base":["Invoice 1042: customer, line items, and total due","Payment terms and bank details"],"pages_overlay":["APPROVED stamp centered across the page","APPROVED stamp centered across the page"]}'const res = await fetch("https://api.kit.forhosting.com/pdf/overlay-two-files", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages_base": [
"Invoice 1042: customer, line items, and total due",
"Payment terms and bank details"
],
"pages_overlay": [
"APPROVED stamp centered across the page",
"APPROVED stamp centered across the page"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/overlay-two-files",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages_base": [
"Invoice 1042: customer, line items, and total due",
"Payment terms and bank details"
],
"pages_overlay": [
"APPROVED stamp centered across the page",
"APPROVED stamp centered across the page"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/overlay-two-files", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages_base":["Invoice 1042: customer, line items, and total due","Payment terms and bank details"],"pages_overlay":["APPROVED stamp centered across the page","APPROVED stamp centered across the page"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages_base":["Invoice 1042: customer, line items, and total due","Payment terms and bank details"],"pages_overlay":["APPROVED stamp centered across the page","APPROVED stamp centered across the page"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/overlay-two-files", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"pages_base": [
"Invoice 1042: customer, line items, and total due",
"Payment terms and bank details"
],
"pages_overlay": [
"APPROVED stamp centered across the page",
"APPROVED stamp centered across the page"
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.overlay_two_files",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |