شاطر
اذهب الى الأسفل
عدد المساهمات : 134
تاريخ التسجيل : 08/10/2012
معاينة صفحة البيانات الشخصي للعضو

Print Document In .Net

في الأحد أكتوبر 14, 2012 6:45 pm
سنتعلم فى هذا الدرس كيفية استخدام العنصر Print Document

حيث 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
اضعط ظغطتين علي المكون PrintDocumet يظهر الحدث PrintPage
الكود:

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

    End Sub
البارمتر e جميع الخواص التى فيه هى المسئولة عن خواص الطباعة


الخاصية 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
العنصر PageSettings

له عدة خصائص منها :

الخاصية 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
تعرفنا على الكائن PageSettings

تعال نتعرف الان على الكائن

الكائن 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
مربع الحوار PrintDialog :

مربع الحوار هذا يسمح للمستخدم باختيار الطابعة وتحديد الخواص لها
لو تجاهلته سيتم استخدام الافتراضية بخواصها
الكود:

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
مربع الحوار PrintPreview :

لمعاينة المخرجات قبل طباعتها ومعرفة مدى ملاءمتها للطباعة ثم يحدد هل سيطبع ام لا

وبذلك تلغي الأمر Print للكائن PrintDocument فتضع للعنصر ShowDialog الأمر PrintPreview
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى