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

طباعة الفورم فى فيجوال بيسك دوت نت

في الأحد أكتوبر 14, 2012 5:11 pm
بسم الله الرحمن الرحيم

هناك طرق كثيرة لطباعة الفورم واذا قمت بالبحث ستجد الكثير اسرع هذه الطرق هو ماتم مناقشته في منتدى ميكروسوفت وكانت الطريقة هي انه يتم اخذ صورة عن الفورم بطريقة Capture ومن ثم طباعتها على اساس انها صورة

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

المتطلبات الرئيسية :-

1- كائن PrintDocument ويكون اسمه PrintDocument1

2- يكون زر الطباعة اسمه PrintButton

الكود:

Private Declare Function BitBlt Lib "gdi32.dll" Alias "BitBlt" (ByVal _
 hdcDest As IntPtr, ByVal nXDest As Integer, ByVal nYDest As _
 Integer, ByVal nWidth As Integer, ByVal nHeight As Integer, ByVal _
 hdcSrc As IntPtr, ByVal nXSrc As Integer, ByVal nYSrc As Integer, _
 ByVal dwRop As System.Int32) As Long
Dim memoryImage As Bitmap
Private Sub CaptureScreen()
 Dim mygraphics As Graphics = Me.CreateGraphics()
 Dim s As Size = Me.Size
 memoryImage = New Bitmap(s.Width, s.Height, mygraphics)
 Dim memoryGraphics As Graphics = Graphics.FromImage(memoryImage)
 Dim dc1 As IntPtr = mygraphics.GetHdc
 Dim dc2 As IntPtr = memoryGraphics.GetHdc
 BitBlt(dc2, 0, 0, Me.ClientRectangle.Width, _
 Me.ClientRectangle.Height, dc1, 0, 0, 13369376)
 mygraphics.ReleaseHdc(dc1)
 memoryGraphics.ReleaseHdc(dc2)
End Sub
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, _
 ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles _
 PrintDocument1.PrintPage
 e.Graphics.DrawImage(memoryImage, 0, 0)
End Sub
Private Sub PrintButton_Click(ByVal sender As System.Object, ByVal e As _
 System.EventArgs) Handles PrintButton.Click
 CaptureScreen()
 PrintDocument1.Print()
 End Sub
وبهذه الطريقه تقوم بطباعة الفورم بطريقه سهله وسريعه لكن من عيوبها انك لاتستطيع اختيار اشياء من الطباعة اي انه سوفق يقوم بتصوير الفورم ويقوم بطباعته

بالتوفيق
الرجوع الى أعلى الصفحة
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى