- tarik
- عدد المساهمات : 134
تاريخ التسجيل : 08/10/2012
Print Document In .Net
الأحد أكتوبر 14, 2012 6:45 pm
سنتعلم فى هذا الدرس كيفية استخدام العنصر Print Document
حيث Print Document هو المكون الأساسي للطباعة داخل الدوت نت
وتتم الطباعة عبر استدعاء الطريقة Print للكائن PrintDocumet وهذه الطريقة تنادي علي الحدث PrintPage وهو الحدث الذى يوضع فيه كود تحديد خصائص الطباعة
وذلك باستخدام طرق الرسم للكائن Griphic
لنقوم بذلك أنشأ مشروع جديد وضع المكون PrintDocumet على الفورم واضف زر أمر Button
لكي نطبع الصفحة نكتب فى حدث الزر هذا الكود
الخاصية Graphics : هى المسئولة عن تحديد مخرجات الطباعة التى ستطبع
الخاصية MarginBounds : الخاصية المسئولة عن الهوامش للصفحة وتحدد منطقة الطباعة
الخاصية PageSettings : الخاصية المسئولة عن خصائص الصفحة المطبوعة - حجم اصفحة - الاتجاه - الهوامش وغيرها من الخواص
ومن خواص الخاصية PageSettings الخاصية PrinterSettings وهي خاصية أخري تحتوى على خصائص حول الطابعة والاعدادات الخاصة بها
نتعامل مع الكود التالى فى الحدث PrintPage
يقوم بطباعة مستطيل يغلق منطقة الطباعه للصفحة(الهوامش)
يقوم بطباعة نص فى داخله كما يقوم بطباعة نص خارج منطقة الطباعة القيمة الافتراضية للهوامش هى 1 انش لكل جانب
سنتعلم من المثال كثير من الطرق المهمة لذا يجب الانتب
له عدة خصائص منها :
الخاصية Bounds وهى مثل الخاصية MarginBounds للبارمتر e فى الحدث printpage
لكن هذه الخاصية هنا لا تهتم بالهوامش المحددة عن طريق المستخدم
وهى تمثل شكل مستطيل Rectangle
حجم صفحة A4 هى 827×1169 وصفحة letter هي 850×1100
لخاصية Margins :
تمثل الهوامش المحددة عم طريق المستخدم كخواص Top - Left - Right - Bottom
الخاصية PaperSize :
تمثل الخاصية حجم الورق وابعاد الورقة هى ابعاد الخاصية Bounds ولكن هناك خاصيتان مهمتان لهذا الكائن هما Kind و PaperName
الخاصية Kind تاخذ نوع الورق
الخاصية PaperSource :
تمثل نوع ملقم الورق أو درج الورق
SourceName للعنصر PaperSource هو ''Auto Sheet Feeder."
الخاصية PrinterResolution :
تمثل دقة الطباعة الخواص X,Y لهذا العنصر تعود بالقيم الافقية والعمودية على التوالى كنقاط لكل انش DPI والخاصية Kind تتضمن عدة خواص (Low, Medium, High, Custom, Draft )
الخاصية Color :
تسند لها قيمة منطقية True / False - تجعلها True لو كانت الطابعة ألوان
تعال نتعرف الان على الكائن
الكائن PrinterSettings
من خواص هذا الكائن:
SupportsColor :
تستطيع عن طريقه أن تعود بقيمة منطقية تحدد اذا كانت الطابعة تدعم الطباعة بالالوان ام لا واستخدامناه فى الكود السابق
MaximumCopies :
يعطى اقصى عدد من النسخ ممكن أن تطبعه الطابعة فى المرة الواحدة
Copies :
تحدد فيها عدد النسخ المراد طباعتها
IsValid :
تعود بقيمة منطقية تحدد اذا كان اسم الطابعة صحيح وان الطابعة موجودة ومتاحة
InstalledPrinters :
يسترجع اسماء كل الطابعات الموجودة على الكمبيوتر والشبكة
صناديق الحوار
هناك ثلاث كائنات تكون كمربعات حوار أثناء التنفيذ تستخدم مع الكائن Print Document
ووظيفتها التحكم فى عملية الطباعة والتعامل مع خيارات المستخدم
صندوق الحوار PageSetupDialog
هذا الصندوق يحدد اعدادات الصفحة اتجاه الطباعة - الهوامش - الورق الخ من أمور
صندوق الحوار PageSetupDialog يعود بكائن PageSetting يمثل الاعدادات المحددة من قبل المستخدم ويجب مراعاتها و جعل البرنامج يقوم بالطباعة على حسب ما حدده المستخدم
مربع الحوار هذا يسمح للمستخدم باختيار الطابعة وتحديد الخواص لها
لو تجاهلته سيتم استخدام الافتراضية بخواصها
لمعاينة المخرجات قبل طباعتها ومعرفة مدى ملاءمتها للطباعة ثم يحدد هل سيطبع ام لا
وبذلك تلغي الأمر Print للكائن PrintDocument فتضع للعنصر ShowDialog الأمر PrintPreview
حيث Print Document هو المكون الأساسي للطباعة داخل الدوت نت
وتتم الطباعة عبر استدعاء الطريقة Print للكائن PrintDocumet وهذه الطريقة تنادي علي الحدث PrintPage وهو الحدث الذى يوضع فيه كود تحديد خصائص الطباعة
وذلك باستخدام طرق الرسم للكائن Griphic
لنقوم بذلك أنشأ مشروع جديد وضع المكون PrintDocumet على الفورم واضف زر أمر Button
لكي نطبع الصفحة نكتب فى حدث الزر هذا الكود
- الكود:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PrintDocument1.Print()
End Sub
- الكود:
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
End Sub
الخاصية Graphics : هى المسئولة عن تحديد مخرجات الطباعة التى ستطبع
الخاصية MarginBounds : الخاصية المسئولة عن الهوامش للصفحة وتحدد منطقة الطباعة
الخاصية PageSettings : الخاصية المسئولة عن خصائص الصفحة المطبوعة - حجم اصفحة - الاتجاه - الهوامش وغيرها من الخواص
ومن خواص الخاصية PageSettings الخاصية PrinterSettings وهي خاصية أخري تحتوى على خصائص حول الطابعة والاعدادات الخاصة بها
نتعامل مع الكود التالى فى الحدث PrintPage
يقوم بطباعة مستطيل يغلق منطقة الطباعه للصفحة(الهوامش)
يقوم بطباعة نص فى داخله كما يقوم بطباعة نص خارج منطقة الطباعة القيمة الافتراضية للهوامش هى 1 انش لكل جانب
سنتعلم من المثال كثير من الطرق المهمة لذا يجب الانتب
- الكود:
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim Gra As Graphics = e.Graphics
Dim X, Y, Widt, Heig As Integer
X = e.MarginBounds.X
Y = e.MarginBounds.Y
Widt = e.MarginBounds.Width
Heig = e.MarginBounds.Height
Gra.DrawRectangle(Pens.Red, New Rectangle(X, Y, Widt, Heig))
Dim printFont As New Font("tahoma", 36, FontStyle.Regular)
Gra.DrawString("BADRMEDIA SOFTWARE", printFont, _
Brushes.Green, 150, 300)
Gra.DrawString("Print Out Range", _
New Font("arial", 20, FontStyle.Regular), _
Brushes.Black, -10, -10)
End Sub
له عدة خصائص منها :
الخاصية Bounds وهى مثل الخاصية MarginBounds للبارمتر e فى الحدث printpage
لكن هذه الخاصية هنا لا تهتم بالهوامش المحددة عن طريق المستخدم
وهى تمثل شكل مستطيل Rectangle
حجم صفحة A4 هى 827×1169 وصفحة letter هي 850×1100
لخاصية Margins :
تمثل الهوامش المحددة عم طريق المستخدم كخواص Top - Left - Right - Bottom
الخاصية PaperSize :
تمثل الخاصية حجم الورق وابعاد الورقة هى ابعاد الخاصية Bounds ولكن هناك خاصيتان مهمتان لهذا الكائن هما Kind و PaperName
الخاصية Kind تاخذ نوع الورق
الخاصية PaperSource :
تمثل نوع ملقم الورق أو درج الورق
SourceName للعنصر PaperSource هو ''Auto Sheet Feeder."
الخاصية PrinterResolution :
تمثل دقة الطباعة الخواص X,Y لهذا العنصر تعود بالقيم الافقية والعمودية على التوالى كنقاط لكل انش DPI والخاصية Kind تتضمن عدة خواص (Low, Medium, High, Custom, Draft )
الخاصية Color :
تسند لها قيمة منطقية True / False - تجعلها True لو كانت الطابعة ألوان
- الكود:
If printDoc.PrinterSettings.SupportsColor Then
e.PageSettings.Color = True
End If
تعال نتعرف الان على الكائن
الكائن PrinterSettings
من خواص هذا الكائن:
SupportsColor :
تستطيع عن طريقه أن تعود بقيمة منطقية تحدد اذا كانت الطابعة تدعم الطباعة بالالوان ام لا واستخدامناه فى الكود السابق
MaximumCopies :
يعطى اقصى عدد من النسخ ممكن أن تطبعه الطابعة فى المرة الواحدة
Copies :
تحدد فيها عدد النسخ المراد طباعتها
IsValid :
تعود بقيمة منطقية تحدد اذا كان اسم الطابعة صحيح وان الطابعة موجودة ومتاحة
InstalledPrinters :
يسترجع اسماء كل الطابعات الموجودة على الكمبيوتر والشبكة
صناديق الحوار
هناك ثلاث كائنات تكون كمربعات حوار أثناء التنفيذ تستخدم مع الكائن Print Document
ووظيفتها التحكم فى عملية الطباعة والتعامل مع خيارات المستخدم
صندوق الحوار PageSetupDialog
هذا الصندوق يحدد اعدادات الصفحة اتجاه الطباعة - الهوامش - الورق الخ من أمور
صندوق الحوار PageSetupDialog يعود بكائن PageSetting يمثل الاعدادات المحددة من قبل المستخدم ويجب مراعاتها و جعل البرنامج يقوم بالطباعة على حسب ما حدده المستخدم
- الكود:
With PageSetupDialog1
.PageSettings = PrintDocument1.DefaultPageSettings
If .ShowDialog =DialogResult.OK Then _
PrintDocument1.DefaultPageSettings = .PageSettings
End With
مربع الحوار هذا يسمح للمستخدم باختيار الطابعة وتحديد الخواص لها
لو تجاهلته سيتم استخدام الافتراضية بخواصها
- الكود:
PrintDialog1.PrinterSettings = _
PrintDocument1.DefaultPageSettings.PrinterSettings
PrintDialog1.AllowSelection = True
PrintDialog1.AllowSomePages = True
If PrintDialog1.ShowDialog = DialogResult.OK Then
PageSetupDialog1.PageSettings = PrintDocument1.DefaultPageSettings
If PageSetupDialog1.ShowDialog = DialogResult.OK Then
PrintDocument1.DefaultPageSettings = _
PageSetupDialog1.PageSettings
PrintDocument1.Print
End If
End If
لمعاينة المخرجات قبل طباعتها ومعرفة مدى ملاءمتها للطباعة ثم يحدد هل سيطبع ام لا
وبذلك تلغي الأمر Print للكائن PrintDocument فتضع للعنصر ShowDialog الأمر PrintPreview
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى