24-09-16, 03:49 AM
(23-09-16, 11:39 PM)ابو ليلى كتب : [ -> ]عذراً للتاخير اخي الكريم.....كثرة المشاغلشكرا لك اخى ابو ليلى و قد اضفت على النموذج TextBox1 و اسميته في Module1 باسم Company حتى يظهر به اسم الشركة
لتحديد الطابعة من الطابعات المثبتة لديك انت تحتاج الى تمرير اسم الطابعة مباشرة الى اعدادت الطباعة او كفكرة موسعة
لنقم باضافة الطابعات المتوفرة الى ListBox1 و اضافة من عندي نضيف ايضاً الدقة الى ListBox2
و نمرر اسم الطابعة و الدقة الى اجراء الطباعة
المطلوب منك اضافة ListBox1-ListBox2 الى النموذج
و الكود التالي استبدله بكود النموذج لديك
كود النموذج
PHP كود :
Imports System.Drawing.Printing
Public Class Form1
Dim PrintDoc As Printing.PrintDocument = New Printing.PrintDocument()
Dim pd_PrintDialog As New PrintDialog
' Dim MyImage As System.Drawing.Image = PicBarCode.BackgroundImage
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
ActiveControl = TextBox3
Dim Print_name As String
For i As Integer = 0 To PrinterSettings.InstalledPrinters.Count - 1
Print_name = PrinterSettings.InstalledPrinters.Item(i)
ListBox1.Items.Add(Print_name)
Next
ListBox2.DataSource = pd_PrintDialog.PrinterSettings.PrinterResolutions.OfType(Of Printing.PrinterResolution).Select(Function(x) New PrintQuality(x)).ToArray
ListBox2.Enabled = ListBox2.Items.Count > 0
ListBox2.SelectedItem = ListBox2.Items.OfType(Of PrintQuality).FirstOrDefault
End Sub
' تم ايقاف هذا الاجراء و لم يعد يستخدم و ترك مؤقتا
Public Sub PrintBarCodeV()
pd_PrintDialog.UseEXDialog = True
pd_PrintDialog.AllowPrintToFile = False
'تحديد عدد النسخ المراد طباعتها
pd_PrintDialog.PrinterSettings.Copies = nud_Count.Value
'عرض صندوق حوار اختيار الطابعة
If pd_PrintDialog.ShowDialog = Windows.Forms.DialogResult.OK Then
PrintDoc.PrinterSettings = pd_PrintDialog.PrinterSettings
AddHandler PrintDoc.PrintPage, AddressOf PrintDocHandler
End If
End Sub
Private Sub TextBox3_TextChanged(sender As Object, e As EventArgs) Handles TextBox3.TextChanged
PicBarCode.BackgroundImage = Code128(TextBox3.Text, "A", TextBox4.Text, TextBox2.Text)
End Sub
'This is the event handler for printing bar codes
Private Sub PrintDocHandler(ByVal sender As Object, ByVal ev As Printing.PrintPageEventArgs)
ev.Graphics.DrawImage(PicBarCode.BackgroundImage, nud_MarginH.Value, nud_MarginW.Value, nud_MarginWBrcode.Value, nud_MarginHBrcode.Value)
End Sub
Private Sub butPageSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles butPageSetup.Click
'اعداد الصفحة
PageSetupDialog1.Document = PrintDoc
PageSetupDialog1.ShowDialog()
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'معاينة قبل الطباعة
AddHandler PrintDoc.PrintPage, AddressOf PrintDocHandler
'تحديد عدد النسخ المراد طباعتها
pd_PrintDialog.PrinterSettings.Copies = nud_Count.Value
PrintPreviewDialog1.Document = PrintDoc
PrintPreviewDialog1.ShowDialog()
End Sub
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
Close()
End Sub
Private Sub طباعة_الباركود_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
'كتابة اسم المنتج على ملصق الباركود
'Dim a As Graphics = PicBarCode.CreateGraphics
'a.DrawString(TextBox2.Text, Me.Font, Brushes.Black, 100, 5)
'ActiveControl = TextBox3
Catch ex As Exception
End Try
End Sub
Private Sub Button11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
PrintBarCodeV()
End Sub
Private Sub Button11_Click_2(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button11.Click
'طباعة الباركود
If TextBox3.Text = "" Then 'الباركود فارغ
MsgBox("من فضلك تأكد من كتابة النص المراد تحويله الى باركود", MsgBoxStyle.DefaultButton1, "ogy soft")
Exit Sub
Else
pd_PrintDialog.PrinterSettings.DefaultPageSettings.PrinterSettings.PrintToFile = False
'تحديد عدد النسخ المراد طباعتها.
pd_PrintDialog.PrinterSettings.Copies = nud_Count.Value
PrintDoc.PrinterSettings = pd_PrintDialog.PrinterSettings
PrintDoc.PrinterSettings.PrinterName = ListBox1.Text
'دقة الطباعة
Dim PrintQuality = TryCast(ListBox2.SelectedItem, PrintQuality)
If PrintQuality IsNot Nothing Then
PrintDoc.DefaultPageSettings.PrinterResolution = PrintQuality.Resolution
End If
AddHandler PrintDoc.PrintPage, AddressOf PrintDocHandler
'امر الطباعة
PrintDoc.Print()
End If
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
'كتابة اسم المنتج على ملصق الباركود
PicBarCode.BackgroundImage = Code128(TextBox3.Text, "A", TextBox4.Text, TextBox2.Text)
End Sub
Private Sub Timer2_Tick(sender As Object, e As EventArgs) Handles Timer2.Tick
'كتابة سعر المنتج على ملصق الباركود
PicBarCode.BackgroundImage = Code128(TextBox3.Text, "A", TextBox4.Text, TextBox2.Text)
End Sub
End Class
'كلاس للدقة
Public Class PrintQuality
Public Property Resolution As Printing.PrinterResolution
Public Overrides Function ToString() As String
If Resolution.Kind = Printing.PrinterResolutionKind.Custom Then
Return "Custom (" & Resolution.X & " x " & Resolution.Y & " DPI)"
Else
Return Resolution.Kind.ToString
End If
End Function
Public Sub New(Resolution As Printing.PrinterResolution)
Me.Resolution = Resolution
End Sub
End Class
و لا تنسى ترفع الملف بعد التعديل لمن طلبه الاصدارة لدي لا تتوافق مع اغلب الاصدارات عند الاعضاء
و قد اضفت هذا الكود فى Module1
GraphZ.DrawString(Company, New Font("times new roman", 12, FontStyle.Bold), New SolidBrush(Color.Black), 0, 50)
و قمت باعدة تنسيق الباركود
و عدلة فى هذا الكود لاظهار رمز العملة على السعر و اضافة اسم الشركة فى الطباعة
PicBarCode.BackgroundImage = Code128(TextBox3.Text, "A", TextBox4.Text & " " & "L.E", TextBox2.Text, TextBox1.Text)
و اهم ما فى هذه المشاركة اخى ابو ليلى انى فهمت الكود جيدا و شكرا جزيلا لك و تم اضافة النموذج فى المرفقات
نسأل الله ان يستفيد الجميع و ان يرزق كل طالب علم كل ما يتمناه
و نشكر مرتا اخرى الاخ ابو ليلى و نسأل الله ان يزيده علما