طباعة اختبار فورمز وحفظه PDF: دليل الحاسوب و iPad و Android
عبارة «احفظ النموذج PDF» قد تعني خمسة أشياء مختلفة. هذا الدليل يفرزها، ثم يعطيك الخطوات الدقيقة على Chrome وiPad Safari وAndroid، مع قواعد طباعة CSS وسكربت Python يولّد ملفاً عربياً بخط مضمّن حين لا تكفي طباعة المتصفح.
كلمة «حفظ» تعني خمسة أشياء مختلفة
قبل اختيار الطريقة، حدّد ما تريده فعلاً. خلط هذه المعاني هو السبب الأول وراء «الملف لا يشبه النموذج».
| ما تريده | الطريقة الصحيحة | ما ستحصل عليه |
|---|---|---|
| نسخة مطابقة لما يراه الطالب | طباعة صفحة العرض من المتصفح | PDF بتخطيط الشاشة ومساحات إجابة |
| ملف منظّم بالأسئلة والخيارات | محوّل Google Form to PDF | PDF مرتّب للطباعة والأرشفة |
| ملف قابل للتعديل | تحويل إلى Word (.docx) | مستند قابل للتحرير |
| أرشيف لإجابات الطلاب | جدول الاستجابات في Sheets ثم التصدير | بيانات الردود، لا الأسئلة |
| رابط دائم للنموذج | مشاركة رابط «إرسال» | لا ملف على الإطلاق |
على الحاسوب: Chrome وطباعة نظيفة
افتح رابط العرض (الذي يراه الطالب)، لا صفحة التحرير. ثم Ctrl+P على Windows أو Cmd+P على macOS، واختر «حفظ كـ PDF» كطابعة.
- فعّل رسومات الخلفية إن كانت ألوان الجدول أو الحدود اختفت.
- عطّل الرؤوس والتذييلات كي لا يظهر عنوان URL والتاريخ أعلى كل صفحة.
- اضبط المقياس على 100% قبل الحكم على وجود سؤال مقطوع؛ التصغير التلقائي يخفي المشكلة ولا يحلّها.
- راجع معاينة الصفحات كاملة، لا الصفحة الأولى فقط.
على iPad: Safari وإيماءة المعاينة
من Safari افتح رابط النموذج ← زر المشاركة ← طباعة ← ستظهر معاينة صغيرة. كبّرها بإيماءة الإصبعين حتى تتحول إلى معاينة متعددة الصفحات، ثم اضغط المشاركة من هذه الشاشة واختر «حفظ في الملفات».
خطآن متكرران: الحفظ قبل أن تظهر كل الصفحات (ينتج ملفاً بحجم صفري أو صفحة واحدة)، واستخدام خيار «إنشاء PDF» من قائمة المشاركة قبل تكبير المعاينة (ينتج صورة صفحة واحدة). انتظر اكتمال الرسم، ثم احفظ. إن كان Safari يمنع النوافذ المنبثقة، اسمح بها للصفحة وأعد المحاولة.
على Android: خدمة الطباعة
من Chrome افتح القائمة ← مشاركة ← طباعة ← اختر «حفظ كـ PDF» من قائمة الطابعات ← حدد مجلد الحفظ. على بعض الأجهزة لا تكون خدمة الطباعة النظامية مفعّلة، فتظهر القائمة فارغة؛ فعّلها من إعدادات النظام أو ثبّت خدمة الطباعة الخاصة بالشركة المصنّعة.
لا تغلق التبويب ولا تبدّل التطبيق أثناء الحفظ؛ إيقاف Chrome في الخلفية قد يُنهي الكتابة قبل إغلاق الملف.
ضبط CSS للطباعة: منع قطع السؤال بين صفحتين
إن كنت تطبع صفحة HTML تحتوي الأسئلة (وليس واجهة Google Forms نفسها)، فهذه القواعد تمنع أكثر العيوب شيوعاً. أضفها داخل @media print:
@media print {
@page { size: A4; margin: 16mm; }
body { direction: rtl; font-family: "Noto Naskh Arabic", Tahoma, serif; }
.question {
break-inside: avoid;
page-break-inside: avoid;
margin-bottom: 12mm;
}
.question h3 { break-after: avoid; page-break-after: avoid; }
.no-print, nav, footer, .btn { display: none !important; }
a { text-decoration: none; color: inherit; }
a[href^="http"]::after { content: ""; } /* hide URLs in print */
img { max-width: 100%; break-inside: avoid; }
}لاحظ أن break-inside وpage-break-inside مكتوبان معاً: الأول للمحركات الحديثة والثاني للإصدارات القديمة من WebKit التي ما زالت موجودة في متصفحات iOS.
سكربت يعمل: توليد PDF عربي قابل للطباعة من الأسئلة
حين تحتاج خطاً عربياً مضمّناً وترتيباً مضموناً بدل طباعة الشاشة، استخدم reportlab مع arabic_reshaper وpython-bidi. سبب هاتين الحزمتين أن reportlab لا يطبّق تشكيل الحروف العربية ولا الاتجاه RTL تلقائياً؛ بدونهما تظهر الحروف مفصولة ومعكوسة. ثبّت بـ pip install reportlab arabic-reshaper python-bidi.
# -*- coding: utf-8 -*-
import arabic_reshaper
from bidi.algorithm import get_display
from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import A4
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
FONT = "NotoNaskhArabic-Regular.ttf" # put the TTF next to this script
pdfmetrics.registerFont(TTFont("Arabic", FONT))
QUESTIONS = [
("ما عاصمة المملكة العربية السعودية؟", ["الرياض", "جدة", "مكة", "الدمام"]),
("أي مما يلي عدد أولي؟", ["4", "7", "9", "12"]),
]
def rtl(text):
return get_display(arabic_reshaper.reshape(text))
def build(path="exam.pdf"):
c = canvas.Canvas(path, pagesize=A4)
w, h = A4
y = h - 60
c.setFont("Arabic", 14)
for i, (q, opts) in enumerate(QUESTIONS, 1):
if y < 140:
c.showPage(); c.setFont("Arabic", 14); y = h - 60
c.drawRightString(w - 50, y, rtl("%d. %s" % (i, q)))
y -= 30
for j, o in enumerate(opts):
c.setFont("Arabic", 12)
c.drawRightString(w - 70, y, rtl("%s) %s" % ("أبجد"[j], o)))
y -= 24
c.setFont("Arabic", 14)
y -= 18
c.save()
print("wrote", path)
if __name__ == "__main__":
build()السكربت يرسم من اليمين بـ drawRightString ويعالج كل سطر على حدة. لا يضيف إجابات صحيحة، ولا يفصل نسخة المعلم عن نسخة الطالب تلقائياً، ويحتاج ملف الخط TTF بجانبه. هذه الحدود مقصودة: الهدف ملف يُطبع، لا نظام تصحيح.
ما لا يعطيك إياه PDF المطبوع
| المطلوب | هل توفره طباعة المتصفح؟ | البديل |
|---|---|---|
| مفتاح الإجابة | لا | محوّل مخصّص أو ملف معلم منفصل |
| سؤال واحد لكل صفحة | لا | قواعد break-inside أو سكربت |
| صور بجودة الأصل | غالباً لا | روابط صور عامة + خطوة تحميل |
| نص قابل للبحث والنسخ باتجاه سليم | غير مضمون | توليد PDF بخط مضمّن كما في السكربت |
| ردود الطلاب | لا | تصدير من Google Sheets |
| نموذج قابل للإجابة | لا | رابط النموذج نفسه |
الفروق بين الأجهزة والخطوط
الفروق التالية تظهر فعلياً عند التصدير والطباعة، وليست افتراضية:
- Chrome على الحاسوب: Ctrl+P ثم اختيار «حفظ كـ PDF». فعّل «رسومات الخلفية» إن اختفت ألوان الجدول، وعطّل «الرؤوس والتذييلات» إن ظهر رابط الصفحة في أعلى كل ورقة. معاينة الطباعة تعرض ترقيم الصفحات قبل الحفظ.
- Safari على iPad: زر المشاركة ← طباعة ← تكبير المعاينة بإيماءة الإصبعين ← مشاركة ← حفظ في «الملفات». إن حفظت قبل أن تكتمل المعاينة قد تحصل على ملف بحجم صفري؛ انتظر ظهور الصفحات كاملة.
- Android / Chrome Mobile: القائمة ← مشاركة ← طباعة ← حفظ كـ PDF. بعض الأجهزة لا تتضمن خدمة طباعة نظامية، فتظهر القائمة فارغة؛ ثبّت خدمة الطباعة الخاصة بالشركة المصنّعة أو احفظ الملف من الحاسوب.
- الخطوط العربية: إن لم يُضمَّن الخط في PDF، فقد تظهر الحروف مفصولة على جهاز لا يملك الخط نفسه. الملفات المولّدة آلياً بخط Noto Naskh Arabic المضمّن أكثر أماناً للمشاركة بين الأجهزة.
ثمانية أخطاء وحلولها
- صفحة بيضاء أو ملف صفري: حفظت قبل اكتمال المعاينة؛ انتظر ثم أعد الحفظ.
- سؤال مقطوع بين صفحتين: break-inside: avoid على حاوية السؤال.
- الحروف العربية مفصولة في PDF المولّد: نسيت arabic_reshaper أو python-bidi.
- اختفت الحدود والألوان: فعّل «رسومات الخلفية» في مربع الطباعة.
- رابط الصفحة أعلى كل ورقة: عطّل «الرؤوس والتذييلات».
- مربعات الاختيار مشوّهة: عناصر CSS خاصة بالشاشة؛ استبدلها بأحرف [ ] في نسخة الطباعة.
- قائمة الطابعات فارغة على Android: فعّل خدمة الطباعة النظامية.
- الملف يختلف بين جهاز وآخر: الخط غير مضمّن؛ استخدم TTF مضمّناً كما في السكربت أو صدّر من جهاز واحد دائماً.
حدود التحويل
حدود واضحة قبل أن تبني عليها سير عملك. ملف PDF أو Word الناتج يحمل بنية الأسئلة: نص السؤال، والخيارات، ومفتاح الإجابة إن وُجد. لا يحمل الردود التي أدخلها الطلاب، ولا رابط النموذج الأصلي، ولا المتعاونين والصلاحيات، ولا جدول الاستجابات المرتبط، ولا الثيم، ولا رسالة التأكيد، ولا حالة النشر، ولا إعدادات التحقق. إن كان هدفك أرشفة الإجابات فهذه عملية مختلفة تماماً تبدأ من Google Sheets، ولا يؤديها تحويل النموذج نفسه.
واجهة منتج ExamParser بالإنجليزية حالياً ولا توجد نسخة عربية من صفحة المنتج؛ لكن النص العربي داخل أسئلتك يُنقل كما كتبته، لأن التحويل يتعامل مع النص كبيانات. واتجاه العرض في الملف الناتج يعتمد على الخط وعلى إعدادات RTL، لا على لغة الواجهة.
الأسئلة الشائعة
كل الإجابات تفترض أنك تملك صلاحية قراءة النموذج وتصدير محتواه.
كيف أحفظ Google Form كملف PDF من الآيفون أو الآيباد؟
افتح رابط العرض في Safari، اضغط مشاركة ثم طباعة، كبّر المعاينة بإيماءة الإصبعين حتى تظهر الصفحات، ثم اضغط مشاركة من شاشة المعاينة واختر حفظ في الملفات. الحفظ قبل اكتمال المعاينة ينتج ملفاً ناقصاً.
هل تحتوي النسخة المطبوعة على الإجابات الصحيحة؟
لا. طباعة صفحة العرض تعطي الأسئلة كما يراها الطالب. مفتاح الإجابة يحتاج تحويلاً مخصّصاً أو ملفاً منفصلاً للمعلم، ولا يظهر تلقائياً في PDF المطبوع.
لماذا تظهر الحروف العربية مفصولة في ملف PDF الذي ولّدته؟
لأن مكتبة الرسم لا تطبّق تشكيل الحروف العربية ولا الاتجاه من اليمين إلى اليسار. استخدم arabic_reshaper لتشكيل الحروف و python-bidi لترتيبها، مع خط عربي مضمّن.
هل يمكنني منع قطع السؤال بين صفحتين؟
نعم في صفحة HTML تملكها: أضف break-inside:avoid و page-break-inside:avoid إلى حاوية السؤال داخل @media print. أما واجهة Google Forms نفسها فلا تتيح التحكم في CSS، لذا تحتاج مسار تحويل مخصّص.
هل أستطيع تصدير ردود الطلاب بالطباعة نفسها؟
لا. الطباعة تعطي بنية النموذج. الردود تُصدَّر من جدول الاستجابات في Google Sheets، وهي عملية منفصلة تماماً عن حفظ النموذج كملف PDF.
صدّر أسئلتك الآن
ارفع رابط Google Form واحصل على الملف الذي تحتاجه. صفحة المنتج بالإنجليزية حالياً؛ محتوى أسئلتك العربي يبقى كما هو.
جرّب ExamParser →أدوات تحويل نماذج جوجل
- Google Form to PDF
- Google Form to Word (.docx)
- Google Form to CSV
- Google Form to Excel
- Google Form to Google Sheets