الأربعاء، 26 يوليو 2017

استخدام printDocument فى الفيجوال بيسك دوت نت

سنتعلم فى هذا الدرس كيفية استخدام العنصر 
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

مربع الحوار PrintPreview : 

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

ليست هناك تعليقات:

اضافة تعليق

جميع الحقوق محفوظة © 2019 الحقيبة البرمجية لمبرمجى VB.NET