إنشاء حمولة Code 128 وحساب المجموع الاختباري
تأكد من أن قيمة الملصق تناسب Code 128 بالمجموعة B، واحصل على قيم الرموز التي تحتاجها الطابعة: يبدأ KIT-128 بقيمة البدء 104 ومجموعه الاختباري 77. ويُشار إلى أي محرف غير مدعوم بموضعه. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- النص
- KIT-128
- الحمولة
- KIT-128
- مجموعة الرموز
- B
- قيمة رمز البداية
- 104
- قيمة رمز التحقق
- 77
تعرفوا بدقة إلى النصوص المقبولة
يمثل Code 128 عائلة من طرق الترميز المدمجة، وليس صورة مباشرة لأي نص Unicode. تستخدم هذه الأداة المجموعة B عمدًا لأنها مناسبة للمعرّفات المعتادة التي تضم الحروف والأرقام وعلامات الترقيم والمسافات. وهي تقبل محارف ASCII القابلة للطباعة من U+0020، أي المسافة، إلى U+007E، أي علامة التلدة.
يشمل هذا النطاق الحروف الإنجليزية الكبيرة والصغيرة والأرقام العشرية وعلامات الترقيم الشائعة. أما علامات الجدولة وفواصل الأسطر ومحارف التحكم والحروف ذات العلامات والرموز التعبيرية وسائر المحارف خارج النطاق فتُرفض. هذا القيد صريح لأن استبدال محرف أو حذفه بلا تنبيه يغيّر المعرّف وقد يربط الملصق بسجل غير صحيح.
عند فشل التحقق، يذكر الخطأ موضع المحرف ابتداءً من الصفر ونقطة ترميزه في Unicode، حتى تتمكنوا من تحديد القيمة المطلوب تصحيحها. يُرفض النص الفارغ أيضًا، ويضمن الحد الأقصى للطول بقاء التنفيذ محدودًا. إذا احتجتم إلى محارف التحكم أو رموز FNC أو المجموعتين A وC، فاستخدموا مرمّزًا يصرح بدعم هذا العقد الأوسع.
افهموا طريقة حساب الرموز والمجموع الاختباري
في المجموعة B، تتحول كل علامة مقبولة إلى قيمة بيانات بطرح 32 من رمز ASCII الخاص بها. تصبح المسافة صفرًا، والرقم صفر 16، والحرف A الكبير 33، والتلدة 94. يبدأ الحساب بهذه القيمة، ثم يضيف كل رمز بيانات مضروبًا في موضعه المحسوب ابتداءً من واحد.
وزن الرمز الأول واحد، والثاني اثنان، وهكذا. يضع العارض هذا الرمز بعد البيانات وقبل نمط التوقف؛ وليس رقمًا عشريًا يُلحق بالنص الأصلي. تتيح القيم الوسيطة مراجعة كل حد من حدود الحساب بصورة مستقلة.
ولأن الخوارزمية لا تستخدم إلا حساب الأعداد الصحيحة، فإنها تعيد النتيجة نفسها دائمًا عند إدخال النص نفسه.
استخدموا النتيجة بأمان في أنظمة الملصقات
صُممت النتيجة للبرمجيات التي تعرف مسبقًا كيفية تحويل قيم رموز Code 128 إلى أشرطة أو أوامر طابعة أو شروط اختبار. لا ترسم الأداة ملف SVG أو PNG، ولا تختار الأبعاد، ولا تضيف المناطق الهادئة، ولا تتحقق من قابلية مسح الطباعة الفعلية؛ فهذه مسؤوليات العارض وضبط جودة الطباعة. كما لا يظهر نمط التوقف في المصفوفة لأنه عنصر بنيوي لا يدخل في حساب المجموع الاختباري.
في سير العمل الآلي، تحققوا من البيانات قبل إرسال الأوامر إلى طابعة الملصقات واحتفظوا بالاستجابة مع الناتج. وفي الاختبارات، قارنوا ترتيب القيم والمجموع الاختباري معًا. ولعدم استخدام الشبكة أو التخزين أو العشوائية أو الوقت الحالي، تبقى النتيجة ثابتة بين البيئات.
حالات الاستخدام
إعداد أوامر طابعة الملصقات
تحققوا من معرّف المستودع واحصلوا على القيم الدقيقة للمجموعة B قبل تركيب الأمر الخاص بالطابعة.
إنشاء اختبارات الانحدار
أنشئوا مصفوفات رموز ومجاميع اختبارية قابلة للمراجعة لمقارنة عارض Code 128 مستقل بقيم حتمية.
تشخيص المعرّفات المرفوضة
حددوا محرف تحكم أو حرفًا ذا علامة أو نقطة ترميز أخرى غير مدعومة قبل وصولها إلى مسار الملصقات.
الأسئلة الشائعة
ما المحارف المدعومة؟
محارف ASCII القابلة للطباعة من المسافة (U+0020) إلى التلدة (U+007E)، وهي مجموعة محارف Code 128 B المعتمدة هنا.
كيف يُحسب المجموع الاختباري في Code 128؟
ابدأ من 104، وهي قيمة البدء للمجموعة B، ثم أضف كل رمز بيانات مضروبًا في موضعه بدءًا من واحد. اقسم المجموع على 103 وخذ الباقي، فيكون الباقي في حالة KIT-128 هو 77.
هل أضيف المجموع الاختباري إلى نهاية النص؟
لا. المجموع الاختباري قيمة رمز يضعها برنامج رسم الباركود بعد البيانات وقبل نمط التوقف، وليس رقمًا يُكتب في آخر النص الأصلي، الذي يبقى كما أدخلته تمامًا.
ماذا يحدث إذا كان النص يحتوي على حرف بعلامة أو سطر جديد؟
يُرفض برسالة دقيقة تذكر موضع المحرف بدءًا من الصفر ونقطة ترميزه في Unicode. ولا يُحذف شيء ولا يُستبدل، لأن تغيير المعرّف قد يضع الملصق على السجل الخطأ.
لماذا تصبح المسافة القيمة 0؟
لأن قيمة الرمز في المجموعة B هي رمز ASCII للمحرف ناقص 32. فالمسافة تصبح 0، والرقم صفر يصبح 16، والحرف A الكبير 33، وعلامة التلدة 94.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/enc/barcode-code128-payload \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"KIT-128"}'const res = await fetch("https://api.kit.forhosting.com/enc/barcode-code128-payload", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "KIT-128"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/enc/barcode-code128-payload",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "KIT-128"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/enc/barcode-code128-payload", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"KIT-128"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"KIT-128"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/enc/barcode-code128-payload", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"text": "KIT-128"
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "enc.barcode_code128_payload",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_chars | 4096 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
تتحقق هذه الأداة من حمولة Code 128 قبل رسم الباركود، وتحول كل محرف مدعوم إلى قيمة الرمز المقابلة في المجموعة B، ثم تحسب المجموع الاختباري الإلزامي وفق modulo 103. تتضمن النتيجة الحمولة الأصلية بلا تغيير، ورمز البدء، ورموز البيانات بالترتيب، وقيمة المجموع الاختباري. ولذلك تلائم برمجيات الملصقات وتكامل الطابعات والاختبارات وتشخيص الأخطاء، إذ ينتج كل محرف غير مدعوم خطأ إدخال دقيقًا بدل الاستبدال الصامت.
افهموا طريقة حساب الرموز والمجموع الاختباري
تحافظ مصفوفة data_symbol_values على الترتيب ولا تتضمن رمز البدء أو المجموع الاختباري، وبذلك تفصل البيانات عن الرموز البنيوية بوضوح. تبلغ قيمة start_symbol_value مقدار 104، وهي قيمة البدء القياسية للمجموعة B. يُعاد باقي قسمة المجموع على 103 في checksum_symbol_value.
استخدموا النتيجة بأمان في أنظمة الملصقات
يستطيع العارض إخراج رمز البدء، ثم قيم data_symbol_values، ثم checksum_symbol_value، وأخيرًا نمط التوقف الإلزامي. يبقى حقل payload بلا تغيير كي تربطوا الحساب بالمصدر الدقيق. يتيح المتصفح فحصًا فوريًا، بينما تبلغ تكلفة طلب API الواحد $0.002 عند الحاجة إلى التكامل الآلي.
أسئلة تقنية
هل ينبغي إلحاق رقم المجموع الاختباري بالنص؟
لا. إنه قيمة رمز Code 128 مخصصة للعارض، وليس نصًا يُضاف إلى الحمولة الأصلية.
هل تنشئ الأداة صورة باركود؟
لا. تعيد الحمولة المتحقق منها وقيم الرموز، أما الأشرطة والمناطق الهادئة والأبعاد والصيغ فينشئها العارض.
ماذا يحدث عند وجود رمز تعبيري أو فاصل سطر؟
يفشل الطلب بالرمز invalid_input ويحدد أول محرف غير مدعوم بواسطة موضعه الابتدائي من الصفر ونقطة Unicode.
ما تكلفة التنفيذ عبر API؟
تبلغ تكلفة كل طلب API مقدار $0.002. ويمكنكم إجراء الحساب الحتمي نفسه مجانًا في المتصفح.