23-03-16, 12:16 AM
(آخر تعديل لهذه المشاركة : 23-03-16, 01:41 AM {2} بواسطة silverlight.)
في القورم الذي سوف تستخدمينه في الطباعه أضيفي له PrintDocument Component ثم اضيفي الحدث PrintDocument1_PrintPage الخاص بها
و الكود التالي يوضح الفكرة بشكل عام و انا هنا قمت بالتعديل قليلا في الكود الخاص بك و قمت بطباعة الصورة الموجودة في PictureBox3.BackgroundImage فقط لا غير و هذا من أجل التوضيح
ايضا أنا هنا اضفت لكي بعض الروتينات التي من الممكن استخدامها لإظهار PageSetup او PrintPreview و أيضا روتين للطباعة
لكي تكملي عملية الطباعة بدقة في الروتين DrawInvice عليكي تحديد فونت للطباعة و أيضا تحديد الألوان التي سيتم استخدامها في عملية الطباعة ثم تقوم بحساب الأماكن التي ستظهر بها البيانات علي المستطيل
فكري في الموضوع علي ان المستطيل عبارة عن ورقة عادية ترسمين عليها
أنصحك ان تستخدمي فونت سهل و بسيط خاصة انك ستطبعين باللغة العربية و الإنجليزية أما بخصوص اللأوان استخدمي اللون الأسود فهو أقل تكلفة عن بقية الأوان اخري
معلش الطباعة صداع شوية و للأسف تحتاج الي وقت لتنفيذها و انا للأسف مشغول فعلا لكن اردت فقط مساعدتك بقدر الإمكان
و الكود التالي يوضح الفكرة بشكل عام و انا هنا قمت بالتعديل قليلا في الكود الخاص بك و قمت بطباعة الصورة الموجودة في PictureBox3.BackgroundImage فقط لا غير و هذا من أجل التوضيح
PHP كود :
Public Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim r As New Random
EmpNumber.Text = r.Next(10000000)
PictureBox3.BackgroundImage = Code128(EmpNumber.Text, "A")
End Sub
Private Sub btnDialog_Click(sender As Object, e As EventArgs) Handles btnDialog.Click
ShowPageSetup()
End Sub
Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim bounds As Rectangle = New Rectangle(e.MarginBounds.X, e.MarginBounds.Y, 0, 0)
DrawIvoice(e.Graphics, bounds)
End Sub
Private Sub ShowPageSetup()
Dim invoicePageSetupDialog As PageSetupDialog = New PageSetupDialog() With {.Document = Me.PrintDocument1}
invoicePageSetupDialog.ShowDialog()
End Sub
Private Sub ShowPrintPreview()
Dim invoicePrintPreviewDialog As PrintPreviewDialog = New PrintPreviewDialog() With {.Document = Me.PrintDocument1}
invoicePrintPreviewDialog.ShowDialog()
End Sub
Private Sub Print(showInvoicePrintDialog As Boolean)
If showInvoicePrintDialog Then
Dim result As DialogResult = New PrintDialog() With {.Document = PrintDocument1}.ShowDialog()
If result <> DialogResult.OK AndAlso result <> DialogResult.Yes Then
Return
End If
End If
PrintDocument1.Print()
End Sub
Private Sub DrawIvoice(g As Graphics, rect As Rectangle)
Dim imgPoint As Single = 0
Dim img As Bitmap = CType(PictureBox3.BackgroundImage, Bitmap)
g.DrawImage(img, New Point(imgPoint, imgPoint))
End Sub
Private Sub btnPreview_Click(sender As Object, e As EventArgs) Handles btnPreview.Click
ShowPrintPreview()
End Sub
Private Sub btnPrint_Click(sender As Object, e As EventArgs) Handles btnPrint.Click
Print(True)
End Sub
End Class
ايضا أنا هنا اضفت لكي بعض الروتينات التي من الممكن استخدامها لإظهار PageSetup او PrintPreview و أيضا روتين للطباعة
لكي تكملي عملية الطباعة بدقة في الروتين DrawInvice عليكي تحديد فونت للطباعة و أيضا تحديد الألوان التي سيتم استخدامها في عملية الطباعة ثم تقوم بحساب الأماكن التي ستظهر بها البيانات علي المستطيل
فكري في الموضوع علي ان المستطيل عبارة عن ورقة عادية ترسمين عليها
أنصحك ان تستخدمي فونت سهل و بسيط خاصة انك ستطبعين باللغة العربية و الإنجليزية أما بخصوص اللأوان استخدمي اللون الأسود فهو أقل تكلفة عن بقية الأوان اخري
معلش الطباعة صداع شوية و للأسف تحتاج الي وقت لتنفيذها و انا للأسف مشغول فعلا لكن اردت فقط مساعدتك بقدر الإمكان

