![]() |
|
التحكم فى ضبط حواف الورقة فى طباعة الفورم - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : التحكم فى ضبط حواف الورقة فى طباعة الفورم (/showthread.php?tid=19642) |
التحكم فى ضبط حواف الورقة فى طباعة الفورم - nabil.1710 - 13-03-17 السلام عليكم اساتذتنا هذا الكود يقوم بطباعة الفورم مباشرتا ولكن يوجد مشكلة بحواف الورقة اول الطباعة تكون بعد اول الورقة بحوالى 4 سنتى اريد ان اتحكم فى الحواف لطباعة الورقة و شكرا الكود Imports System.Drawing.Printing Public Class Form1 Dim WithEvents mPrintDocument As New PrintDocument Dim mPrintBitMap As Bitmap Private Sub m_PrintDocument_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles mPrintDocument.PrintPage ' Draw the image centered. Dim lWidth As Integer = e.MarginBounds.X + (e.MarginBounds.Width - mPrintBitMap.Width) \ 1.5 Dim lHeight As Integer = e.MarginBounds.Y + (e.MarginBounds.Height - mPrintBitMap.Height) \ 1.5 e.Graphics.DrawImage(mPrintBitMap, lWidth, lHeight) ' There's only one page. e.HasMorePages = False End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click ' Copy the form's image into a bitmap. mPrintBitMap = New Bitmap(Me.Width, Me.Width) Dim lRect As System.Drawing.Rectangle lRect.Width = Me.Width lRect.Height = Me.Width Me.DrawToBitmap(mPrintBitMap, lRect) ' Make a PrintDocument and print. mPrintDocument = New PrintDocument mPrintDocument.Print() End Sub End Class يوجد مثال فى المرفقات RE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - nabil.1710 - 14-03-17 شكرا لكم اخوتى على عدم الرد ولقد وفقنى الله فى البحث و لقد وجدة ضالتى و اعتقد افضل كود لطباعة الفورم الكود فى هذا الرابط http://arbtech.forumegypt.net/t28-topic الكود منقول 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 RE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - supercool999 - 14-03-17 اعتذر لك بس ما اعرف حلل للمشكلة RE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - nabil.1710 - 15-03-17 (14-03-17, 09:42 PM)supercool999 كتب : اعتذر لك بس ما اعرف حلل للمشكلة لا عليك اخى لقد تم حل المشكلة و الكود فى الرد RE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - أبووسم - 16-03-17 شكراً على الكود أخي الغالي ،، و لكن الكود لا يطبع الصفحة كاملة ؟ يطبع جزء منها فقط RE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - nabil.1710 - 16-03-17 (16-03-17, 08:27 PM)أبووسم كتب : شكراً على الكود أخي الغالي ،، اخى اضبط size الفورم اجعل width 796 اما ال Height اجعله اى مقاس حسب طول الفورم RE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - أبووسم - 18-03-17 شكراً اخي نبيل و الله يعطيك العافية RE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - silverlight - 19-03-17 لأن الفورم مصمم بحيث ان أبعاده تتناسب مع ابعاد شاشة الكمبيوتر عليك ان تستخدم مقياس رسم بحيث تضبط صورة الفورم لتتناسب مع ابعاد ورقة الطباعة مثلا تاخذ صورة الفورم ثم تعيد رسمها بأبعاد أقل قليلا علي صورة فاضية بابعاد اخري اقل من ابعاد صورة الفورم ثم ترسم تلك الصورة علي ورقة الطباعة الخلاصة أنت تحتاج مقياس رسم مناسب و حينها ستكتشف أن كل الكود الخاص بك و الخاص باستخدام دوال API يمكن الاستغناء عنه RE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - silverlight - 19-03-17 هذا هو الكود الخاص بك بعد التعديل عليه قليلا PHP كود : Imports System.Drawing.PrintingRE: التحكم فى ضبط حواف الورقة فى طباعة الفورم - nabil.1710 - 21-03-17 (19-03-17, 06:36 AM)silverlight كتب : هذا هو الكود الخاص بك بعد التعديل عليه قليلا شكرا على مجهودك اخى لقد تم ما اريد و جزاكم الله خيرا |