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

نسخة كاملة : هل يوجد كود ارسال اي نص للطابعة فورا
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
هل يوجد كود ارسال اي نص للطابعة فورا

اريد كود يكتب بحدث النقر لزر امر يقوم بطباعة صفحة html او خليط من Div and css
يعني صفحة منسقة اريد طبعتها بشكل فوري.
شكر الله لكم
استعمل الويب براوزر
PHP كود :
webBrowser1.DocumentText "<html .....>";
 
webBrowser1.Print(); 
جربت الكود التالي ماضبط
كود :
Dim wc As New WebClient
        wc.Encoding = Encoding.Default
        Dim wb As New WebBrowser
        wb.DocumentText = wc.DownloadString("http://vb4arb.com/vb/thread-2512.html")
        wb.Print()
طيب الاداة هذي PrintDocument1 كيف نتعامل معها كيف نجعلها تطبع نص محدد لان حين اعطي print فقط تشتغل الطابعة وتسحب الورقة من دون اي شي
فكيف الامر
الامر فيه صعوبة اطلعت على امثلة فلم اجد ابسط مما ذكره الاخ الشاكي
السلام عليكم ورحمة الله وبركاته

وجدت كلاس بموقع Codeproject عدلت فيه ليطبع مباشرة علي الطابعة الافتراضية (في الكود الأصلي لازم تحدد الطابعة بنفسك):

كود :
Public Class PrintHelper
    Friend TextToBePrinted As String

    Public Sub print(ByVal text As String)
        TextToBePrinted = text
        Dim prn As New Printing.PrintDocument
        Using (prn)
            AddHandler prn.PrintPage, _
               AddressOf Me.PrintPageHandler
            prn.Print()
            RemoveHandler prn.PrintPage, _
               AddressOf Me.PrintPageHandler
        End Using
    End Sub

    Private Sub PrintPageHandler(ByVal sender As Object, _
       ByVal args As Printing.PrintPageEventArgs)
        Dim myFont As New Font("Courier New", 9)
        args.Graphics.DrawString(TextToBePrinted, _
           New Font(myFont, FontStyle.Regular), _
           Brushes.Black, 50, 50)
    End Sub
End Class

طريقة الاستخدام :
كود :
Dim ph As New PrintHelper

        Dim MyHtml As String = "مصدر النص"

        ph.print(MyHtml)


http://www.codeproject.com/Questions/618...rom-vb-net

****
***
**
*
بارك الله فيك اخي
ايهما اسرع الكود الذي كتبت ام الكود التالي:
كود :
Private Sub DocumentCompleted(ByVal sender As Object, ByVal e As WebBrowserDocumentCompletedEventArgs)
        With DirectCast(sender, WebBrowser)
            If .ReadyState = WebBrowserReadyState.Complete Then
                .Print()
            End If
        End With
    End Sub
    Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
        Dim myWebBrowser As New WebBrowser
        AddHandler myWebBrowser.DocumentCompleted, AddressOf DocumentCompleted
        myWebBrowser.ScriptErrorsSuppressed = True
        myWebBrowser.Navigate(Application.StartupPath & "\a.htm")
    End Sub
ايضا لو كانت الطابعة ليزر ليست ملونة ماهي الطريقة الافضل لبرمجة طباعتها
سرعتهم تقريبا واحدة مع اختلاف أن الأول يظهر شاشة صغيرة تبين إرسال الأمر للطابعة عكس الثاني لا يظهر شيء أثناء الطباعة

بالنسبة للطابعة أي برنامج عندما يحاول الطباعة فإنه يبحث عن الطابعة الافتراضية المنصبة في الجهاز ، إذا ذهبت إلي قسم (الأجهزة والطابعات) من قائمة أبدا ستجد الطابعة الافتراضية وعليها علامة (صاح) خضراء .

يمكنك أن تغيير الطابعة برمجيا في الكود الأول لكن في الثاني لا أدري كيف

هذا الكود لاستعراض الطابعات المنصبة بالجهاز :
PHP كود :
For Each ar As String In Printing.PrinterSettings.InstalledPrinters
            Me
.ComboBox1.Items.Add(ar)
        
Next 

****
***
**
*
لزيادة الخير بعد

هذا كود لإختيار طابعة افتراضية ( Default )


PHP كود :
<DllImport("winspool.drv"CharSet := CharSet.AutoSetLastError := True)> _
Public Shared Function SetDefaultPrinter(Name As String) As Boolean
End 
Function

Private 
Sub button1_Click(sender As ObjectAs EventArgs)
    
SetDefaultPrinter("HP Deskjet D1500 series")
End Sub