المدونةالتعليمقراءة في 6 دقائق
ورقة عمل ممسوحة إلى وورد: كيف تجعلها قالبًا قابلًا لإعادة الاستخدام
ورقة العمل المحوّلة من مسح ضوئي تبدو سليمة لكنها غالبًا مبنية بترقيم مكتوب يدويًا وفراغات من نقاط وشرطات ومحاذاة بالمسافات، فتنهار عند أول تعديل. افحصها أولًا، ثم حوّل الترقيم إلى قائمة تلقائية، والفراغات إلى علامات جدولة بخط سفلي، والخيارات إلى جدول من اليمين إلى اليسار، واحفظها قالبًا.
عندك ورقة عمل مطبوعة أو اختبار قصير أو بطاقة تدريب، وليس لديك ملفها الأصلي. تصوّرها أو تمسحها ضوئيًا، وتحوّلها إلى وورد لتغيّر الأرقام أو تضيف سؤالًا أو تصنع نسخة ثانية للفصل الآخر. يبدو الملف مطابقًا للورقة، ثم تضيف سؤالًا واحدًا في الوسط فتتزحزح الخطوط، ويبقى ترقيم الأسئلة القديم كما هو، وتنكسر الأعمدة.
السبب أن التحويل ينقل شكل الصفحة، لا طريقة بنائها. الرقم «س١» نص مكتوب وليس ترقيمًا تلقائيًا، وخط الإجابة سلسلة نقاط أو شرطات، والخيارات «أ، ب، ج» مصفوفة بالمسافات. هذا يكفي للطباعة مرة واحدة، لكنه لا يصلح قالبًا تعيد استخدامه طوال الفصل الدراسي.
هذا الدليل للمعلم ومنسق المادة ومُعدّ المحتوى التعليمي ومن ينتج أوراق عمل ومذكرات بالجملة. يشرح كيف تكتشف هذه المشكلات بسرعة، وكيف تستبدل كل واحدة منها بعنصر وورد حقيقي، وكيف تتأكد أن الورقة صارت قالبًا يتحمّل التعديل.
الخطوة ١: افحص الملف قبل أن تعدّل فيه
قبل أي تعديل، اعرف ما الذي في الملف. السكربت التالي (Python مع مكتبة python-docx) يقرأ ملف وورد ويسرد كل موضع فيه واحدة من خمس مشكلات: ترقيم مكتوب يدويًا (مثل «س١:» أو «١-» أو «أ-») في فقرة بلا ترقيم تلقائي، وفراغ مرسوم بأربع شرطات سفلية أو أكثر أو بخمس نقاط أو أكثر أو بحروف التطويل «ـ»، ومربع أو قوسان فارغان مكتوبان نصًا، ومحاذاة بثلاث مسافات متتالية أو أكثر، وجدول أعمدته مرتبة من اليسار إلى اليمين.
"""فحص ورقة عمل محوّلة إلى Word قبل اعتمادها قالبًا.
الاستخدام: python3 check_worksheet.py ورقة.docx
يحتاج: pip install python-docx
"""
import re
import sys
from docx import Document
from docx.oxml.ns import qn
MANUAL_NUM = re.compile(r"^\s*(س\s*[0-9٠-٩۰-۹]+|[0-9٠-٩۰-۹]+|[أابتثجحخدذرزسشصضطظعغفقكلمنهوي])\s*[-–ـ.):]")
BLANK = re.compile(r"_{4,}|\.{5,}|…{2,}|ـ{4,}")
SLOT = re.compile(r"\(\s{1,}\)|[□☐▢]")
SPACES = re.compile(r"[^\s(] {3,}[^\s)]")
def has_list_numbering(p):
ppr = p._p.pPr
return ppr is not None and ppr.find(qn("w:numPr")) is not None
def check_paragraph(where, p, issues):
text = p.text
if not text.strip():
return
short = text.strip()[:40]
if MANUAL_NUM.match(text) and not has_list_numbering(p):
issues.append((where, "ترقيم مكتوب يدويًا", short))
if BLANK.search(text):
issues.append((where, "فراغ مرسوم بشرطات أو نقاط أو تطويل", short))
if SLOT.search(text):
issues.append((where, "مربع أو قوسان فارغان مكتوبان نصًا", short))
if SPACES.search(text):
issues.append((where, "محاذاة بمسافات متتالية", short))
def main(path):
doc = Document(path)
issues = []
for i, p in enumerate(doc.paragraphs, 1):
check_paragraph(f"فقرة {i}", p, issues)
for t, table in enumerate(doc.tables, 1):
tblpr = table._tbl.tblPr
rtl = tblpr is not None and tblpr.find(qn("w:bidiVisual")) is not None
if not rtl:
issues.append((f"جدول {t}", "الأعمدة من اليسار إلى اليمين", table.cell(0, 0).text[:40]))
for r, row in enumerate(table.rows, 1):
for c, cell in enumerate(row.cells, 1):
for p in cell.paragraphs:
check_paragraph(f"جدول {t} صف {r} عمود {c}", p, issues)
for where, kind, sample in issues:
print(f"{where}\t{kind}\t{sample}")
print(f"المجموع: {len(issues)} ملاحظة")
if __name__ == "__main__":
main(sys.argv[1])
شغّله هكذا: python3 check_worksheet.py ورقة.docx. على ورقة عمل تجريبية بنيناها لهذا الدليل (سؤالان مرقّمان يدويًا، وخيارات مصفوفة بالمسافات، وخطوط للاسم والصف بالنقاط والتطويل، ومربع مكتوب، وجدول توصيل بأعمدة من اليسار إلى اليمين) طبع السكربت ما يلي:
فقرة 2 ترقيم مكتوب يدويًا س١: اكتب ناتج الجمع: ٣ + ٤ = ________
فقرة 2 فراغ مرسوم بشرطات أو نقاط أو تطويل س١: اكتب ناتج الجمع: ٣ + ٤ = ________
فقرة 3 ترقيم مكتوب يدويًا س٢: ضع علامة صح أو خطأ: العدد ٧ زوجي (
فقرة 3 مربع أو قوسان فارغان مكتوبان نصًا س٢: ضع علامة صح أو خطأ: العدد ٧ زوجي (
فقرة 4 ترقيم مكتوب يدويًا أ- ثلاثة ب- خمسة ج- سب
فقرة 4 محاذاة بمسافات متتالية أ- ثلاثة ب- خمسة ج- سب
فقرة 5 فراغ مرسوم بشرطات أو نقاط أو تطويل الاسم: ..................
فقرة 6 فراغ مرسوم بشرطات أو نقاط أو تطويل الصف: ـــــــــــ
فقرة 7 مربع أو قوسان فارغان مكتوبان نصًا ☐ راجعت إجاباتي
جدول 1 الأعمدة من اليسار إلى اليمين العمود أ
جدول 1 صف 2 عمود 1 ترقيم مكتوب يدويًا ١- القلم
جدول 1 صف 2 عمود 2 مربع أو قوسان فارغان مكتوبان نصًا ( ) أداة كتابة
المجموع: 12 ملاحظة
وعلى نسخة ثانية من الورقة نفسها بُنيت بقائمة ترقيم تلقائية وعلامة جدولة وجدول من اليمين إلى اليسار طبع «المجموع: 0 ملاحظة». أجرينا هذه التجربة أثناء كتابة الدليل (Python 3.11 وpython-docx 1.2.0) على ملفين أنشأناهما بأنفسنا، لا على ورقة عمل حقيقية ولا على ناتج أداة تحويل بعينها.
القائمة التي يطبعها السكربت هي خطة عملك. ابدأ بالترقيم، لأن تغييره يغيّر مواضع كل ما بعده.
الخطوة ٢: حوّل الترقيم المكتوب إلى قائمة تلقائية
الترقيم المكتوب يدويًا لا يتحدّث. إن حذفت السؤال الثالث بقي الرابع «س٤»، وإن نسخت الورقة لاختبار آخر أعدت الترقيم بيدك. الحل:
- حدّد الأسئلة كلها، واحذف من بداية كل سؤال الرمز المكتوب («س١:» أو «١-»). استخدم «بحث واستبدال» إن كانت كثيرة، وراجع النتيجة.
- طبّق الترقيم التلقائي من زر الترقيم في تبويب الصفحة الرئيسية، واختر شكلًا يناسب الورقة: أرقام (١، ٢، ٣ أو 1، 2، 3) للأسئلة، وحروف (أ، ب، ج) للخيارات إن كانت متاحة في نسختك.
- للأسئلة الفرعية استخدم مستوى ثانيًا في القائمة نفسها بدل كتابة «أ-» يدويًا.
- إن كانت الورقة من أقسام، كل قسم يبدأ ترقيمه من ١، فانقر نقرًا مزدوجًا على الأرقام، ثم انقر بزر الفأرة الأيمن على أول رقم في القسم واختر «إعادة البدء من 1» (Restart at 1). وتنبّه Microsoft إلى تغيير الأرقام بأوامر القائمة، لا بتعديلها يدويًا.
لا تنقل نص «السؤال الأول» و«السؤال الثاني» المكتوب بالكلمات إلى الترقيم التلقائي إن كان جزءًا من تصميم الورقة؛ يكفي أن تعرف أنه لن يتحدّث وحده.
الخطوة ٣: استبدل خطوط الفراغ بعلامات جدولة
سلسلة النقاط أو الشرطات أو حروف التطويل تتغيّر بطولها مع الخط وحجمه، وتنكسر إلى سطرين إذا أضاف الطالب أو المعلم أي كلمة قبلها. البديل الثابت علامة جدولة لها «حرف قائد» (Leader) بشكل خط سفلي:
- احذف سلسلة النقاط أو الشرطات أو التطويل، واترك المؤشر بعد العنوان («الاسم:»).
- افتح مربع «علامات الجدولة» (Tabs) من إعدادات الفقرة.
- اكتب موضع علامة الجدولة قرب نهاية السطر، واختر من «حرف قائد» الخيار الرابع (الخط السفلي)، ثم اضغط «تعيين» (Set) قبل «موافق»؛ إن ضغطت «موافق» أولًا لن تُضاف العلامة.
- اضغط Tab بعد العنوان، فيظهر خط إجابة يمتد إلى الموضع الذي حددته بالضبط.
طبّق العلامة على نمط فقرة واحد (مثلًا «سطر إجابة») حتى تتطابق كل خطوط الورقة. وتنص Microsoft على أن علامات الجدولة لا تُعيَّن ولا تُعدَّل في Word للويب، فاعمل هذه الخطوة في نسخة سطح المكتب. وفي الفقرات العربية جرّب الخط على سطر واحد قبل تعميمه، لأن اتجاه الفقرة يؤثر في مكان بداية القياس.
الخطوة ٤: مربعات الاختيار و«صح أو خطأ»
القوسان الفارغان «( )» والمربع المكتوب «☐» يعملان على الورق، لكنهما يتحركان مع النص. اختر البديل بحسب طريقة استخدام الورقة:
- ورقة للطباعة: حوّل البنود إلى قائمة نقطية واختر رمز مربع فارغ من «تعريف تعداد نقطي جديد» (Define New Bullet). يبقى المربع في مكانه مهما عدّلت النص.
- ورقة يملؤها الطالب على الحاسوب: أضف مربع اختيار من تبويب «المطور» (Developer) بأمر «خانة اختيار» (Check Box)، ثم انسخه إلى بداية كل بند. إن لم يظهر تبويب المطور فعّله من خيارات تخصيص الشريط. وفي Word للويب توجد ميزة «قائمة تحقق» (Checklist) مستقلة.
لأسئلة «صح أو خطأ» التي يكتب فيها الطالب علامة داخل القوسين، يمكنك أيضًا وضع العبارات في جدول من عمودين: العبارة، وخانة فارغة للإجابة.
الخطوة ٥: الخيارات وجداول التوصيل في جدول من اليمين إلى اليسار
خيارات «أ- ثلاثة ب- خمسة» المصفوفة بالمسافات تتبعثر عند تغيير الخط. ضعها في جدول بلا حدود: صف واحد، وعمود لكل خيار. وجدول «صل العمود (أ) بما يناسبه من العمود (ب)» جدول من عمودين.
انتبه لاتجاه الجدول نفسه، لا اتجاه النص داخل الخلايا فقط. في ملف وورد يُخزَّن الجدول المعكوس بخاصية w:bidiVisual (جدول من اليمين إلى اليسار بصريًا)، وإذا غابت فإن المواصفة تنص على أن الجدول لا يُعرض من اليمين إلى اليسار: يظهر العمود الأول على اليسار، فيصير «العمود أ» على يسار الصفحة و«العمود ب» على يمينها. غيّر اتجاه الجدول من خصائص الجدول (Table Properties)، ثم تأكد بعينك أن العمود الأول صار على اليمين. هذا ما يفحصه سطر «الأعمدة من اليسار إلى اليمين» في السكربت.
الخطوة ٦: احفظ النسخة النظيفة قالبًا
بعد أن يطبع السكربت «المجموع: 0 ملاحظة»، أو ملاحظات تعرف سببها وقررت إبقاءها، احفظ الملف من «حفظ باسم» بصيغة قالب Word (.dotx). كل ورقة جديدة تفتحها من القالب تبدأ بترقيم وخطوط وجداول سليمة، ولا يتغيّر القالب نفسه حين تعدّل نسخة منه.
مثال توضيحي
مثال توضيحي، لا يمثّل مدرسة أو معلمًا بعينه: معلمة رياضيات للصف الرابع لديها ورقة مراجعة مطبوعة من عشرين سؤالًا، تريد منها ثلاث نسخ بأعداد مختلفة لثلاثة فصول. حوّلت الورقة إلى وورد وغيّرت الأعداد في النسخة الأولى، وحين حذفت سؤالًا مكررًا بقي الترقيم يقفز من «س٧» إلى «س٩»، وانكسر خط الاسم إلى سطرين لأنها كبّرت الخط. بعد الفحص والتنظيف بالخطوات أعلاه صنعت النسخ الثلاث من قالب واحد، ولم تحتج إلا إلى تغيير الأعداد ومراجعة مفتاح الإجابة.
قائمة مراجعة قبل اعتماد القالب
- قرأت الورقة كاملة على الصورة الأصلية، ولا سيما الأعداد والعمليات ومفتاح الإجابة
- لا يبقى ترقيم مكتوب يدويًا إلا ما قررت إبقاءه، والترقيم يبدأ من ١ في كل قسم يحتاج ذلك
- كل خطوط الإجابة علامات جدولة بخط سفلي من نمط واحد، لا نقاط أو شرطات أو تطويل
- المربعات والأقواس الفارغة صارت رموز تعداد أو خانات اختيار أو خلايا جدول
- الخيارات وجداول التوصيل في جداول، والعمود الأول في كل جدول على اليمين
- أضفت سؤالًا في منتصف الورقة وحذفته، فبقي الترقيم والخطوط في مكانها
- الأرقام في الورقة من نظام واحد (هندية ١٢٣ أو عربية 123) إلا ما هو مقصود
- الرسوم والصور والأشكال الهندسية موجودة، وواضحة عند الطباعة
- حفظت الملف قالبًا .dotx باسم واضح
أين يدخل ScribeTools
يحوّل ScribeTools أوراق العمل والمذكرات العربية الممسوحة أو المصوّرة إلى وورد قابل للتعديل، ويستخرج الجداول إلى جداول بيانات، ويعمل مع الإنجليزية والأردية وتقريبًا مع أي لغة أخرى في الورقة نفسها. وكما هو الحال مع أي أداة تحويل، يبقى الناتج نقطة بداية: راجعه على الأصل، ثم استخدم الفحص والخطوات أعلاه لتجعله قالبًا. وإن كانت في الورقة جداول درجات أو أعداد ستُنقل إلى Excel، فراجع دليل الجداول العربية من PDF إلى Excel.
حدود هذا الدليل
- السكربت يقرأ متن المستند وجداوله فقط، ولا يقرأ مربعات النص والرؤوس والتذييلات والحواشي. وأوراق العمل كثيرًا ما تضع الأسئلة في مربعات نص، فراجع هذه يدويًا.
- السكربت يعتمد على أنماط نصية بسيطة، فقد يفوته شكل ترقيم أو فراغ غير مدرج فيه، وقد ينبّه على فقرة سليمة تبدأ بحرف مفرد تليه علامة ترقيم. ولا يرى الترقيم المطبّق من نمط الفقرة، لكنه لا ينبّه عليه أيضًا لأن رقمه لا يكون جزءًا من النص.
- لا يتناول الدليل المعادلات والكسور والرموز الرياضية والأشكال الهندسية. تحقق منها يدويًا على الصورة، ولا تعتمد على أنها نُقلت كما هي.
- أسماء الأوامر في وورد تختلف بين الإصدارات ولغات الواجهة وبين Windows وMac، والأسماء العربية هنا وصفية. ارجع إلى توثيق Microsoft لإصدارك.
- الفحص يتأكد من بناء الورقة، لا من صحة محتواها التعليمي ولا من مفتاح الإجابة؛ هذه مسؤولية المعلم.