مشروع Linux Foundation

تحتوي هذه الصفحة على تفاصيل مشروع كتابة فني مقبول في موسم Google من المستندات.

ملخّص المشروع

مؤسسة مفتوحة المصدر:
مؤسسة Linux
الكاتب الفني:
PIYUSHgoyal16
اسم المشروع:
إرشادات التصميم ودليل توجيهي لبرامج تشغيل الطابعات/الماسحات الضوئية في تطبيقات الطابعات
مدة المشروع:
مدة زمنية عادية (3 أشهر)

وصف المشروع

نظرة عامة

تم استبدال برامج تشغيل الطابعات الكلاسيكية التي تتألف من فلاتر خاصة بالطابعة وملفات PPD (Postscript Printer Description، التي تصف إمكانات الطابعة والفلاتر التي يتم استدعاؤها) والتي يجب إسقاطها في أدلة معيّنة من نظام الملفات بتطبيقات تُعرف باسم "تطبيقات الطابعة"، وهي محاكاة لطابعة شبكة IPP.

معظم الطابعات الحديثة متعددة الأغراض هي طابعات IPP التي تتيح الطباعة بدون برنامج تشغيل. وتعرض هذه الأجهزة نفسها من خلال بروتوكول DNS-SD، ويمكن للعملاء الاستعلام عن معلومات الإمكانات الخاصة بها من خلال طلبات IPP، وتستخدم هذه الأجهزة تنسيقات البيانات العادية لوظائف الطباعة. تحتاج الطابعات التي لا توفّر هذه الوظيفة، وعادةً ما تكون الطابعات القديمة أو المخصّصة، إلى برنامج تشغيل طابعة.

تطبيق الطابعة هو برنامج تابع يرصد الطابعات المتوافقة ويعلن عن هذه الطابعات على المضيف المحلي كطابعة IPP Everywhere. تحتوي تطبيقات الطابعة على البرنامج المخصّص لطباعة المهام الواردة على الطابعات المتوافقة معها، وتحويل البيانات إلى اللغة الأصلية للطابعة، وتوفير معلومات عن إمكانات الطابعة للعملاء عند الطلب. يحتوي تطبيق "الطابعة" أيضًا على واجهة إدارة على الويب، مثل طابعة الشبكة الفعلية.

نعلم أنّ نظام التشغيل Linux ينتقل إلى الحِزم المحمية (مثل Snap) وأنّ الطباعة تسير أيضًا في هذا الاتجاه. في حزمة وضع الحماية، لا يمكننا تعديل محتويات الدليل بمجرد إنشائها. لم يعُد نظامنا وحدات. لا يمكننا اختيار حزمة برنامج تشغيل الطابعة المطلوب تثبيتها. تعالج تطبيقات الطابعات مشكلة الوحدة النمطية وتمنحنا نفس الحرية في حالة برامج تشغيل الطابعات.

لا تُعدّ برامج تشغيل الطابعات والماسحات الضوئية في حِزم Snap شرطًا لتشغيل حِزم CUPS وتطبيقات Snap، بل تعمل أيضًا على الأنظمة الكلاسيكية تمامًا، ولكن على عكس برامج التشغيل المُعبأة بشكل تقليدي، فهي لا تعتمد على توزيع نظام التشغيل. يمكنك إنشاء حزمة Snap لبرنامج تشغيل الطابعة وتشغيلها على جميع إصدارات نظام التشغيل التي تعمل باستخدام snapd، ما يغنيك عن حزم برامج تشغيل الطابعة لكل إصدار من نظام التشغيل (وإصداراته) بشكلٍ مستقل وتجنُّب المشاكل المتعلّقة بالتبعيات. والميزة الأخرى هي أنّه تم إيقاف المفهوم القديم لملفات PPD الواردة من طابعات PostScript. بالإضافة إلى ذلك، من خلال ربط نظام CUPS ببرنامج تشغيل الطابعة من خلال اتصال IP بدلاً من إسقاط الملفات في نظام CUPS، يمكن أن يكون كل من نظام CUPS وتطبيق الطابعة في حِزم منفصلة في وضع الحماية.

سأوضّح كيفية تصميم برامج تشغيل الطابعات والماسحات الضوئية لهذا النوع من الحِزم وكيفية حزمها في حِزم Snap. والهدف من ذلك هو مساعدة أي شخص يكتب برامج تشغيل الطابعات أو الماسح الضوئي، لا سيما مصنعو الأجهزة، في المستقبل على تنفيذ ذلك بالطريقة الصحيحة.

يمكن تلخيص سير عمل تطبيق الطابعة باستخدام مخطّط العمل المعروض أدناه:

إنّ قاعدة إنشاء تطبيقات الطابعة/الماسح الضوئي هذه هي PAPPL، وهي مكتبة توفّر معظم الوظائف لهذا الغرض، بالإضافة إلى فلاتر cups التي تحتوي على رمز برمجي ليتم استخدامه في تطبيقات الطابعة. لا يزال هذا المفهوم قيد التطوير، ويُجرى ذلك بشكل أساسي في برنامج Google Summer of Code لهذا العام، ولكن في 14 أيلول (سبتمبر)، عندما تبدأ فترة كتابة المستندات، تكون فترة الترميز في GSoC قد انتهت، وهذا هو الوقت الذي تحتاج فيه OpenPrinting إلى البرنامج التعليمي.

نموذج لبرامج تشغيل الطابعات تحديد بنية بيانات JOB

تعريف صفيف الثوابت لأحجام الوسائط

تعريف الدوالّ 1- دالة الاستدعاء أو دالة الإعداد دالة منطقية تقبل اسم السائق وبياناته وما إلى ذلك وتضبط سمات السائق وفقًا لذلك. إذا كانت التفاصيل المقدّمة مناسبة، يتم عرض true وfalse في حال حدوث خطأ.

2) طباعة قبول الدالة المنطقية، وخيارات المهمة والجهاز. تطبع هذه الدالة ملفًا وتُرجع قيمة صحيحة في حال النجاح وقيمة خاطئة في حال تعذّر التنفيذ.

3- دالة منطقية تقبل الوظيفة وخيارات الوظيفة والجهاز:‏ rendjob ويؤدي ذلك إلى إنهاء المهمة وعرض القيمة true في حال النجاح وfalse في حال الإخفاق.

4) دالة منطقية تقبل الوظيفة وخيارات الوظيفة والجهاز ورقم الصفحة وينتهي الإجراء في الصفحة ويعرض قيمة صحيحة في حال النجاح وقيمة خاطئة في حال تعذّر التنفيذ.

5) بدء العمل قبول الدالة المنطقية، والخيارات الخاصة بالوظيفة والجهاز. تبدأ هذه الدالة المهمة وتُعرِض قيمة صحيحة في حال النجاح وقيمة خاطئة في حال تعذُّر التنفيذ.

6- دالة rstartpage:دالة منطقية تقبل الوظيفة وخيارات الوظيفة والجهاز ورقم الصفحة. فهو يبدأ الصفحة ويعرض القيمة "صواب" عند النجاح، وعلى القيمة "خطأ" عند الفشل.

7- دالة rwrite:دالة منطقية تقبل المهمة وخيارات المهمة والجهاز ورقم السطر وصفيف الأحرف. ويُسجِّل السطر ويعرض "صحيح" في حال النجاح و"خطأ" في حال تعذُّر التنفيذ. viii) وظائف اختيارية، مثل identify (للمساعدة في تحديد الطابعات استنادًا إلى الإجراء المقدَّم) وcompress(لضغط سطر من الرسومات) وما إلى ذلك