تحويل PDF إلى تدرج رمادي صفحة بصفحة
أربع صفحات موسومة بالألوان والرمادي وCMYK والرمادي تعود أربع صفحات بتدرج رمادي، مع عدّاد يبيّن أن صفحتين فقط احتاجتا إلى تغيير. استخدمه لتخطيط التحويل أو لاكتشاف الملفات المختلطة. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الصفحات
- color, grayscale, CMYK, grayscale
- الصفحات
- grayscale, grayscale, grayscale, grayscale
- عدد الصفحات
- 4
- الصفحات المعدّلة
- 2
حوّلوا ملف PDF إلى التدرج الرمادي في مرحلة بيانات الصفحات الوصفية بعملية صغيرة وحتمية. أدخلوا وضع اللون الحالي لكل صفحة وفق ترتيب المستند، فتحصلون على قائمة من الطول نفسه تكون فيها كل صفحة مضبوطة على grayscale. تعرض النتيجة أيضاً العدد الإجمالي للصفحات والعدد الدقيق للأوضاع التي تغيرت، وبذلك يمكن التمييز بين التحويل الكامل والمستند الذي كان مجهزاً مسبقاً. يُرفض المستند الخالي برسالة واضحة عن خطأ الإدخال.
مثّلوا ملف PDF كسلسلة مرتبة من أوضاع الصفحات
تتعامل هذه الإمكانية مع معلومات وضع اللون لكل صفحة التي تنتجها مرحلة سابقة لفحص ملف PDF أو معالجته. قدّموا سلسلة نصية غير فارغة لكل صفحة، وحافظوا على ترتيب الصفحات نفسه في المستند. يمكن مثلاً تمثيل ملف من ثلاث صفحات بالقيم color وgrayscale وcmyk.
ستحتوي النتيجة على ثلاثة مواضع بالترتيب نفسه، مع ضبطها جميعاً على grayscale. ولأن العملية تعالج أوصاف الصفحات بدلاً من البيانات الثنائية المرفوعة، فهي سريعة وقابلة للتوقع وسهلة الإدراج بين تحليل PDF ومرحلة لاحقة للتصيير أو التصدير. يجب أن يحتوي الإدخال على صفحة واحدة على الأقل.
إذا غاب الحقل pages، أو كانت القائمة فارغة، أو لم تكن القيمة قائمة، أو كان أحد الأوضاع نصاً فارغاً، يُرفض الطلب بدلاً من اعتباره مستنداً صحيحاً من دون صفحات. يجعل هذا التحقق الصارم أخطاء مسار العمل ظاهرة، ويمنع تفسير غياب نتيجة المحلل على أنه تحويل ناجح. لا تُفرز الصفحات ولا تُحذف القيم المكررة ولا يتغير ترتيبها بأي شكل.
استخدموا النتيجة ضمن مسار معالجة PDF
صُممت النتيجة لمسارات العمل التي تفصل بين فحص PDF وتخطيط التحويل وتصيير الملف. في البداية يحدد محلل أو نظام مستندات الوضع الحالي لكل صفحة. بعد ذلك توحّد هذه الإمكانية الخطة وتوضح عدد أوصاف الصفحات التي تحتاج إلى تغيير.
لا تفتح هذه الإمكانية ملف PDF ولا تحوله إلى صورة نقطية ولا تعيد تلوينه ولا ترجع ملف PDF ثنائياً؛ بل تحول وصف الأوضاع لكل صفحة الذي تقدمونه. يسمح هذا الحد باستخدامها في المتصفح وفي الأتمتة الحتمية، لكن تغيير وحدات البكسل فعلياً يتطلب تمرير الخطة إلى مصيّر PDF مناسب. يمكن للعدد دعم معاينة مثل «ستتغير 12 صفحة من أصل 30»، أو التحقق من خلو مستند محول من أوضاع الألوان، أو التنبيه إلى ملفات مصدر مختلطة على نحو غير متوقع.
حالات الاستخدام
إعداد خطة للتحويل
وحّدوا الأوضاع المكتشفة قبل إرسال قائمة مرتبة من أهداف التدرج الرمادي إلى مصيّر PDF.
تدقيق المستندات مختلطة الأوضاع
احسبوا صفحات ملف PDF الوارد التي لم تُضبط بعد على القيمة grayscale.
التحقق من تحويل سابق
تأكدوا من أن المستند المعالج لا يحتاج إلى تغييرات أخرى من دون قبول نتيجة فارغة.
الأسئلة الشائعة
هل تعيد هذه الإمكانية ملف PDF محولاً؟
لا. إنها توحّد أوصاف وضع اللون المقدمة، وعلى مصيّر PDF لاحق تطبيق الوضع المطلوب على وحدات البكسل والموارد.
هل يتغير ترتيب الصفحات؟
لا. تحافظ مصفوفة pages المعادة على طول الإدخال وترتيبه تماماً.
هل تُحسب الصفحة المكتوبة GRAYSCALE أو المحاطة بمسافات زائدة صفحةً متغيرة؟
لا. تُتجاهل الأحرف الكبيرة والمسافات حول القيمة، فتُعدّ تلك الصفحات رمادية أصلًا. أما أوضاع مثل color وrgb وcmyk وmonochrome فتُحسب تغييرًا عند العد.
ماذا تعني نتيجة بصفر صفحات متغيرة؟
تعني أن القائمة صحيحة وأن كل الصفحات كانت رمادية من قبل، فلم يكن هناك ما يحتاج إلى تغيير. ولا تعني أبدًا أن المستند فارغ، لأن القائمة الفارغة تُرفض برسالة واضحة.
كيف أستفيد من عدد الصفحات المتغيرة؟
لعرض معاينة مثل «ستتغير 12 صفحة من 30»، أو للتأكد من أن مستندًا محولًا سابقًا لم تبقَ فيه صفحات ملونة، أو لتمييز الملفات التي تخلط صفحات ملونة ورمادية.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/pdf/grayscale \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"pages":["color","grayscale","cmyk"]}'const res = await fetch("https://api.kit.forhosting.com/pdf/grayscale", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"pages": [
"color",
"grayscale",
"cmyk"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/pdf/grayscale",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"pages": [
"color",
"grayscale",
"cmyk"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/pdf/grayscale", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"pages":["color","grayscale","cmyk"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"pages":["color","grayscale","cmyk"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/pdf/grayscale", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"pages": [
"color",
"grayscale",
"cmyk"
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "pdf.grayscale",
"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 | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
افهموا عدد الصفحات التي تغيرت
تتحول كل قيمة إدخال صحيحة إلى القيمة القياسية الدقيقة grayscale. يفيد هذا الفرق عندما يكون التحويل قد تم في مرحلة سابقة، أو عندما تصل مستندات ذات أوضاع مختلطة من مصادر متعددة. لا يحسب الحقل pages_changed إلا الأوضاع التي لم تكن grayscale بعد إزالة المسافات المحيطة وإجراء مقارنة لا تميز بين الأحرف الكبيرة والصغيرة. لذلك تُعد القيم grayscale وGRAYSCALE والكلمة نفسها المحاطة بمسافات أوضاعاً جاهزة، بينما تُحسب color وrgb وcmyk وmonochrome وأي قيمة أخرى غير فارغة كتغيير. يساوي الحقل page_count دائماً عدد العناصر المقدمة، وتحافظ مصفوفة pages المعادة على الطول نفسه. إذا كانت pages_changed تساوي صفراً، فهذا يعني أن الطلب صحيح ولكن لا توجد صفحة تحتاج إلى تغيير، ولا يعني أن الإدخال كان فارغاً. وإذا ساوت page_count فقد تغيرت كل الصفحات، أما القيم الواقعة بينهما فتشير إلى مستند مختلط الأوضاع. لا تستخدم العملية شبكة أو ساعة أو عشوائية أو قواعد محلية أو حالة قابلة للتغيير، ولذلك ينتج الإدخال نفسه JSON مطابقاً في كل مرة.
استخدموا النتيجة ضمن مسار معالجة PDF
ثم يستطيع محرك PDF استخدام القائمة المرتبة المعادة كأوضاع مستهدفة، وتسجيل pages_changed لأغراض التقارير أو التحقق أو مقاييس التشغيل. تبلغ كلفة الاستخدام الآلي $0.002 لكل طلب، ولا توجد رسوم إضافية معلنة لكل صفحة لهذه الإمكانية.
أسئلة تقنية
ما الذي يحسبه pages_changed؟
يحسب كل صفحة صحيحة لم تكن قيمتها grayscale بعد إزالة المسافات وإهمال الفرق بين الأحرف الكبيرة والصغيرة.
ماذا يحدث إذا كانت كل الصفحات بالتدرج الرمادي مسبقاً؟
ينجح الطلب، وتبقى جميع الصفحات المعادة على grayscale، وتكون قيمة pages_changed صفراً.
هل يمكن إرسال مصفوفة pages فارغة؟
لا. يجب أن يحتوي وصف PDF على وضع صفحة واحد على الأقل، ويعيد الإدخال الفارغ أو المفقود الخطأ invalid_input.
كم تبلغ كلفة الطلب الآلي؟
السعر المنشور هو $0.002 لكل طلب، من دون رسم إضافي لكل صفحة.