11-08-17, 05:13 PM
بسم الله الرحمن الرحيم
لا أعلم هل هذا القسم صحيح او وضعت المشاركة في القسم الخطأ ،، اسمح للمشرفين بتغييره للقسم الصحيح ،، وشكرا
موضوعي اليوم عن الطباعة وهذه الطريقة تنفع في حال مثلاً نريد طباعة نصوص على استمارة جاهزة أو ممكن تصميم شكل الطباعة بالكامل بالكود من مربعات وخطوط وجداول والنصوص بداخلها .
الموضوع سهل للغاية :
اولاً اعداد ورقة الطباعة :
للبدء من يمين الورقة (True) واليسار (False) هذا يفيد في اخذ المقاسات في الاستمارة للبداية من يمين الاستمارة او من يسار الاستمارة .
Printer.RightToLeft = False
لتحديد مقاس الورقة A4
Printer.PaperSize = vbPRPSA4
لتحديد مقاس الورقة A3
Printer.PaperSize = vbPRPSA3
لتحديد الطباعة بطول الصفحة
Printer.Orientation = vbPRORPortrait
لتحديد الطباعة بعرض الصفحة
Printer.Orientation = vbPRORLandscape
لتحديد عدد النسخ ،، علما اذا لم تحدد سوف يطبع ورقة واحدة فقط واذا اردت طباعة اكثر من ورقة اكتب عدد النسخ المراد طباعتها .
Printer.Copies = 2
لتحديد مسافات النصوص المراد طباعتها بالمليميتر
Printer.ScaleMode = vbMillimeters
والسنتيمتر (Printer.ScaleMode = vbCentimeters)
وهنا المليميتر والسنتيميتر واحد مثلاً (132 مليميتر) = (13.2 سنتيميتر) ،، فخلينا هنا نستخدم الشرح على المليميتر
لتحديد حجم الخط
Printer.FontSize = 16
لتحديد اسم الخط
Printer.FontName = "Arabic Transparent"
لتحديد لون الطباعة
Printer.ForeColor = vbBlack
حتى هنا الكود واضح وهو اعداد صفحة الطباعة ،، نأتي الان لطباعة النصوص في اماكن نحن نحددها مثلاً :
مثلاً حددنا بالأعلا بحساب المسافة على الورقة يبدأ من اليسار باختيار (Printer.RightToLeft = False)
لاحظ X تعني من يسار الصفحة يبدا من (133 مليميتر)
Printer.CurrentX = 133
لاحظ Y تعني من أعلى الصفحة يبدا من (7 مليميتر)
Printer.CurrentY = 7
لطباعة نص محدد وثابت نضعه بين كوتيشن
طيب لو اردنا طباعة نص موجود في تكست بوكس يكون الكود كالتالي :
Printer.Print text1
طيب لو اردنا طباعة حقل من الجدول يكون الكود كالتالي :
Printer.Print rs!firstname
طيب لو اردنا طباعة صورة معروضة في اداة عرض الصور يكون الكود كالتالي :
Printer.PaintPicture Image1, 50, 70, 100, 150
لاحظ 50 تعني بداية طباعة الصورة من اليسار بالمليميتر
لاحظ 70 تعني بداية طباعة الصورة من الأعلى بالمليميتر
لاحظ 100 تعني عرض الصورة بالمليميتر
لاحظ 150 تعني طول الصورة بالمليميتر
ويمكنك ايضاً طباعة اكثر من نص كالتالي :
Printer.CurrentX = 133
Printer.CurrentY = 7
Printer.Print text2
لاحظ تكست2
ايضاً يمكنك هنا تغيير اسم الخط او لونه او حجمه اذا اردت
Printer.CurrentX = 113
Printer.CurrentY = 20
Printer.Print text3
وهنا ايضاً يمكنك ارجاع اسم الخط او لونه او حجمه كما تحب كل ما عليك فعله هو رسم ما تريد قبل تنفيذ امر الطباعة وسوف يظهر على الورقة كما رسمت.
وهكذا .....
وللطباعة في صفحة اخرى عند نهاية الصفحة السابقة كل ما علينا فعله نضع هذا السطر
Printer.NewPage
ولرسم خط سواء عرض الصفحة او بطول الصفحة
Printer.DrawWidth = 25 'تحديد عرض الخط لرسم الخطوط
' 11 البداية من الاسفل
' 8 البداية من الأعلى
' 15.3 النهاية من أسفل
' 8 النهاية من الأعلى
Printer.Line (11, 8)-(15.3, 8), vbRed
سوف يرسم خط بلون احمر
وبعد اعداد ورقة الطباعة ورسم النصوص والصور المراد طباعتها وتحديد قياسها فقط اكتب السطر التالي لتنفيذ امر الطباعة :
Printer.EndDoc
الآن اكتب لك الكود كامل بدون شرح :
علماً اني عملت كود يقوم بطباعة سجلات الجدول كامله مرتبه على شكل جدول مع صورة لكل سجل داخل جدول انا قمت برسمه بهذه الطريقة .
اي استفسار على الرحب والسعة ،،، في امان الله
لا أعلم هل هذا القسم صحيح او وضعت المشاركة في القسم الخطأ ،، اسمح للمشرفين بتغييره للقسم الصحيح ،، وشكرا
موضوعي اليوم عن الطباعة وهذه الطريقة تنفع في حال مثلاً نريد طباعة نصوص على استمارة جاهزة أو ممكن تصميم شكل الطباعة بالكامل بالكود من مربعات وخطوط وجداول والنصوص بداخلها .
الموضوع سهل للغاية :
اولاً اعداد ورقة الطباعة :
للبدء من يمين الورقة (True) واليسار (False) هذا يفيد في اخذ المقاسات في الاستمارة للبداية من يمين الاستمارة او من يسار الاستمارة .
Printer.RightToLeft = False
لتحديد مقاس الورقة A4
Printer.PaperSize = vbPRPSA4
لتحديد مقاس الورقة A3
Printer.PaperSize = vbPRPSA3
لتحديد الطباعة بطول الصفحة
Printer.Orientation = vbPRORPortrait
لتحديد الطباعة بعرض الصفحة
Printer.Orientation = vbPRORLandscape
لتحديد عدد النسخ ،، علما اذا لم تحدد سوف يطبع ورقة واحدة فقط واذا اردت طباعة اكثر من ورقة اكتب عدد النسخ المراد طباعتها .
Printer.Copies = 2
لتحديد مسافات النصوص المراد طباعتها بالمليميتر
Printer.ScaleMode = vbMillimeters
والسنتيمتر (Printer.ScaleMode = vbCentimeters)
وهنا المليميتر والسنتيميتر واحد مثلاً (132 مليميتر) = (13.2 سنتيميتر) ،، فخلينا هنا نستخدم الشرح على المليميتر
لتحديد حجم الخط
Printer.FontSize = 16
لتحديد اسم الخط
Printer.FontName = "Arabic Transparent"
لتحديد لون الطباعة
Printer.ForeColor = vbBlack
حتى هنا الكود واضح وهو اعداد صفحة الطباعة ،، نأتي الان لطباعة النصوص في اماكن نحن نحددها مثلاً :
مثلاً حددنا بالأعلا بحساب المسافة على الورقة يبدأ من اليسار باختيار (Printer.RightToLeft = False)
لاحظ X تعني من يسار الصفحة يبدا من (133 مليميتر)
Printer.CurrentX = 133
لاحظ Y تعني من أعلى الصفحة يبدا من (7 مليميتر)
Printer.CurrentY = 7
لطباعة نص محدد وثابت نضعه بين كوتيشن
كود :
Printer.Print "عبد العزيز البسكري"
طيب لو اردنا طباعة نص موجود في تكست بوكس يكون الكود كالتالي :
Printer.Print text1
طيب لو اردنا طباعة حقل من الجدول يكون الكود كالتالي :
Printer.Print rs!firstname
طيب لو اردنا طباعة صورة معروضة في اداة عرض الصور يكون الكود كالتالي :
Printer.PaintPicture Image1, 50, 70, 100, 150
لاحظ 50 تعني بداية طباعة الصورة من اليسار بالمليميتر
لاحظ 70 تعني بداية طباعة الصورة من الأعلى بالمليميتر
لاحظ 100 تعني عرض الصورة بالمليميتر
لاحظ 150 تعني طول الصورة بالمليميتر
ويمكنك ايضاً طباعة اكثر من نص كالتالي :
Printer.CurrentX = 133
Printer.CurrentY = 7
Printer.Print text2
لاحظ تكست2
ايضاً يمكنك هنا تغيير اسم الخط او لونه او حجمه اذا اردت
Printer.CurrentX = 113
Printer.CurrentY = 20
Printer.Print text3
وهنا ايضاً يمكنك ارجاع اسم الخط او لونه او حجمه كما تحب كل ما عليك فعله هو رسم ما تريد قبل تنفيذ امر الطباعة وسوف يظهر على الورقة كما رسمت.
وهكذا .....
وللطباعة في صفحة اخرى عند نهاية الصفحة السابقة كل ما علينا فعله نضع هذا السطر
Printer.NewPage
ولرسم خط سواء عرض الصفحة او بطول الصفحة
Printer.DrawWidth = 25 'تحديد عرض الخط لرسم الخطوط
' 11 البداية من الاسفل
' 8 البداية من الأعلى
' 15.3 النهاية من أسفل
' 8 النهاية من الأعلى
Printer.Line (11, 8)-(15.3, 8), vbRed
سوف يرسم خط بلون احمر
وبعد اعداد ورقة الطباعة ورسم النصوص والصور المراد طباعتها وتحديد قياسها فقط اكتب السطر التالي لتنفيذ امر الطباعة :
Printer.EndDoc
الآن اكتب لك الكود كامل بدون شرح :
كود :
Printer.RightToLeft = False
Printer.PaperSize = vbPRPSA4
Printer.Orientation = vbPRORPortrait
Printer.ScaleMode = vbMillimeters
Printer.FontSize = 16
Printer.FontName = "Arabic Transparent"
Printer.ForeColor = vbBlack
Printer.CurrentX = 133
Printer.CurrentY = 7
Printer.Print text1
Printer.EndDoc
اي استفسار على الرحب والسعة ،،، في امان الله