![]() |
|
[VB.NET] احتاج مساعدة في طابعة فواتير حرارية - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182) +--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183) +--- الموضوع : [VB.NET] احتاج مساعدة في طابعة فواتير حرارية (/showthread.php?tid=50064) |
احتاج مساعدة في طابعة فواتير حرارية - zazasami - 14-08-24 السلام عليكم و رحمة الله و بركاته
انا انشئ في برنامج مبيعات لمحلي الجديد واجهتني مشكلة حيث اريد عند الضغط على زر يطبع لي محتويات داتا غريد فيو1 في فاتورة حيث المعلومات المطبوعة تكون في جدول و قبل هذا الجدول اريد كتابة معلومات محلي مثلا في السطر الاول في الوسط اكتب رقم الهاتف "0000 00 00 00" و في السطر الثاني ارسم لوغو و بجانبه اسم المحل " سامي للحواسيب "
اريد شمولية قدر المستطاع في انواع الطابعة اقصد بذالك ان يعمل البرنامج مع عدة انواع من طابعات الفواتير الحرارية
RE: احتاج مساعدة في طابعة فواتير حرارية - dr.programming - 15-08-24 أخى الفاضل .. اذا كنت تقصد بـ طابعات الفواتير الحرارية طابعات الريسيت التى تصدر فواتير مقاس 7.9 سم مثل طابعات الماركت و المطاعم و الكافيهات .. فأود اخبارك بثلاث أمور هامة : أولا : بمجرد تصميم فاتورة على تقرير و طباعتها فأى نوع طابعة تعمل بنفس المقاس مثل : Xprint أو Bixelon أو Fujest أو Sewoo أو Zebra .. الى آخر الطابعات ستصدر فاتورة الطباعة بنفس الكفائة و المقاس . ثانيا: أغلب الطابعات ان لم يكن جميعها يوجد أثناء عمل Install لبرنامجها أو الـ Driver الخاص بها تحديد مقاس الشيت أو الريسيت المطبوع 5.7 أو 7.9 ... ثالثا: أغلب طابعات الفواتير الحرارية ان لم يكن جميعها لا علاقة لها ببرنامجك سوى تقرير + مقاس+كود+ جيد = فاتورة مميزة و رائعة ان احتجت أى شئ فى المر تواصل معى . تقبل تحياتى RE: احتاج مساعدة في طابعة فواتير حرارية - الـ ـجارح - 15-08-24 Imports System.Drawing Imports System.Drawing.Printing Public Class FormInvoice Private WithEvents PrintDocument1 As New PrintDocument Private Invoice_Font As New Font("Arial", 10) Private Bold_Font As New Font("Arial", 10, FontStyle.Bold) Private Logo As Image = Image.FromFile("path_to_your_logo.png") ' تأكد من تغيير المسار إلى الشعار الخاص بك Private Sub ButtonPrint_Click(sender As Object, e As EventArgs) Handles ButtonPrint.Click Try PrintDocument1.Print() Catch ex As Exception MessageBox.Show("خطأ في الطباعة: " & ex.Message) End Try End Sub Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) Handles PrintDocument1.PrintPage Dim startX As Integer = 10 Dim startY As Integer = 10 Dim Offset As Integer = 40 ' طباعة رقم الهاتف Dim phoneNumber As String = "0000 00 00 00" Dim phoneSize As SizeF = e.Graphics.MeasureString(phoneNumber, Bold_Font) e.Graphics.DrawString(phoneNumber, Bold_Font, Brushes.Black, (e.PageBounds.Width - phoneSize.Width) / 2, startY) startY += Offset ' طباعة الشعار واسم المحل e.Graphics.DrawImage(Logo, startX, startY, 50, 50) e.Graphics.DrawString("سامي للحواسيب", Bold_Font, Brushes.Black, startX + 60, startY + 15) startY += 60 ' رسم جدول للبيانات Dim cellHeight As Integer = 30 Dim tableWidth As Integer = e.PageBounds.Width - 2 * startX ' رسم رأس الجدول For i As Integer = 0 To DataGridView1.Columns.Count - 1 Dim cellWidth As Integer = tableWidth / DataGridView1.Columns.Count e.Graphics.DrawRectangle(Pens.Black, startX + i * cellWidth, startY, cellWidth, cellHeight) e.Graphics.DrawString(DataGridView1.Columns(i).HeaderText, Bold_Font, Brushes.Black, startX + i * cellWidth + 5, startY + 5) Next startY += cellHeight ' رسم صفوف البيانات For Each row As DataGridViewRow In DataGridView1.Rows If Not row.IsNewRow Then For i As Integer = 0 To DataGridView1.Columns.Count - 1 Dim cellWidth As Integer = tableWidth / DataGridView1.Columns.Count e.Graphics.DrawRectangle(Pens.Black, startX + i * cellWidth, startY, cellWidth, cellHeight) e.Graphics.DrawString(row.Cells(i).Value.ToString(), Invoice_Font, Brushes.Black, startX + i * cellWidth + 5, startY + 5) Next startY += cellHeight ' التحقق مما إذا كانت هناك حاجة لصفحة جديدة If startY + cellHeight > e.PageBounds.Height - 50 Then e.HasMorePages = True Exit Sub End If End If Next e.HasMorePages = False End Sub End Class
ضبط بعض الإعدادات (مثل حجم الخط أو أبعاد الصورة) اعتمادًا على الطابعة المحددة التي تستخدمها. RE: احتاج مساعدة في طابعة فواتير حرارية - PABLO - 15-08-24 شكرا لكم جميعا |