برمج: شهادة النادي مع تذييل
خصص الصنف FPDF بالوراثة لترسم شهادة عضوية في نادي القراءة، ثم احفظها في ملف PDF من صفحة واحدة.
إعداد المشروع
نفّذ هذا التمرين على جهازك. أنشئ المشروع وأضف حزمة fpdf2:
نزّل شارة النادي، واحفظها باسم badge.svg في مجلد المشروع، بجانب main.py وcertificate.py. تستعمل الشارة المرفقة مقاسًا ثابتًا كي تكون مواضع النص قابلة للمقارنة.
المطلوب البرمجي
- أكمل الصنف
Certificate(FPDF)فيcertificate.py. أعد تعريفheaderوfooter، وأكملadd_memberلإضافة بيانات العضو والشارة. - أكمل
main.pyلقراءة اسم العضو وإنشاء شهادة باتجاهPومقاسA4، ثم إضافة صفحة ومحتوى العضو وحفظcertificate.pdf. - افترض أن الاسم مكتوب بحروف إنجليزية، وطوله من حرف إلى عشرين حرفًا. تستخدم الشهادة خط
Helvetica.
تنفذ add_page الطريقة header تلقائيًا، وينفذ حفظ المستند الطريقة footer للصفحة الأخيرة. وتبقى add_page وimage وcell وoutput طرائق موروثة من FPDF. راجع مثال الرأس والتذييل للتعرف إلى طريقة استعمالها.
النتيجة
ترسم الصفحة العناصر التالية بالترتيب، والقياسات بالمليمتر:
- عنوان أسود
Reading Club Certificateفي وسط الأعلى، بحجم خط24وخلية ارتفاعها20. - سطر أسود
Memberثم الاسم، في الوسط بحجم16وخلية ارتفاعها12. - الشارة بعرض
180، في وسط الصفحة أفقيًا عندx = (210 - 180) / 2وy = 50. - جملة بيضاء من الاسم ثم
joined the club، بحجم16، في وسط خلية بعرض الشارة وارتفاع10عندy = 120. - تذييل أسود
Keep this page، بحجم14، في وسط خلية ارتفاعها10عندy = -25، أي قبل أسفل الصفحة بـ25.
مثال
شغّل البرنامج داخل مجلد المشروع:
افتح certificate.pdf: يجب أن تجد العنوان وMember Zaid والشارة وعليها Zaid joined the club، والتذييل الأسود، في صفحة واحدة. تعني input هنا عرض السؤال في الطرفية وإعادة النص الذي تكتبه، بينما تعرض print رسالة الحفظ.
مساعدة
شرح الحل
ملفات البداية
احفظ القطعتين التاليتين في مجلد المشروع وأكملهما، ثم شغّل main.py بالأمر السابق.
تحقق من النتيجة
- افتح الملف وتحقق من أنه صفحة واحدة بمقاس
A4واتجاه طولي. - قارن العنوان وسطر العضو وموضع الشارة والجملة البيضاء بوصف النتيجة.
- تحقق من ظهور
Keep this pageبالأسود قرب أسفل الصفحة نفسها. - أعد التشغيل باسم مختلف، وتحقق من تغير الاسم في الموضعين داخل الملف المحفوظ.