• 20-09-2016, 17:02:54
    #1
    Arkadaşlar merhaba,

    Çalıştığım projede bir noktada takıldım. WebBrowser1.Print() fonksiyonu ile tarayıcıdaki veriyi yazıcıdan çıkarıyorum.
    Fakat, şöyle bir problemim var form'a 3 farklı WebBrowser ekleyip her birini farklı yazıcılardan çıkarmam gerekiyor.
    Örneğin ;
    WebBrowser1 => "termal1"
    WebBrowser2 => "termal2"
    WebBrowser3 => "termal3"

    gibi atamam gerekiyor.
    VB.Net konusunda hiç bilgim yokken, örnekleri araştırarak 2 günde hazırladığım bir form bu. Yani vb.net bilgim pek yok.

    Dim ps As New System.Drawing.Printing.PrinterSettings
    ps.PrinterName = "termal"

    Gibi bir deneme yaptım ama değişen bir şey olmadı. Şu anki formda bir tane WebBrowser bulunuyor, o şekli ile form dosyasının kodlarını yapıştırıyorum.

    Imports System.Drawing.Printing

    Public Class main

    Private Sub main_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    WebBrowser1.Navigate("http://localhost/yazdir.php?Yazdir=Adisyon")

    End Sub

    Private Sub WebBrowser1_DocumentCompleted(ByVal sender As System.Object, ByVal e As System.Windows.Forms.WebBrowserDocumentCompletedEv entArgs) Handles WebBrowser1.DocumentCompleted

    Dim sayi As Integer = 0

    Dim kontrol As Integer

    Dim ElementCollection As HtmlElementCollection = WebBrowser1.Document.All

    For Each element As HtmlElement In ElementCollection

    If element.GetAttribute("classname").Contains("yazici kontrol") Then

    kontrol = element.InnerText

    End If

    If kontrol = "1" Then

    While sayi < 1

    sayi = sayi + 1

    PrintDocument1.PrinterSettings.PrinterName = "termal"

    PrintDocument1.PrinterSettings.Copies = 1

    PrintDocument1.DefaultPageSettings.Landscape = True

    Dim ps As New System.Drawing.Printing.PrinterSettings

    ps.DefaultPageSettings.Landscape = True

    ps.PrinterName = "termal"

    WebBrowser1.Print()

    End While

    End If

    Next

    End Sub

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick

    WebBrowser1.Navigate("http://localhost/yazdir.php?Yazdir=Adisyon")

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

    Timer1.Start()

    Label1.Text = "Servisler Başlatıldı"



    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

    Timer1.Stop()

    Label1.Text = "Servisler Durduruldu"

    End Sub

    End Class

    Şu anki hali ile windows varsayılan yazıcıdan direk çıktı alabiliyorum ama, varsayılan dışına çıkamıyorum.

    Yardımcı olabilecek arkadaşlara şimdiden teşekkürlerimi sunuyorum.
  • 30-09-2016, 22:02:39
    #2
    kodda yazıcı termal olarak tanımlanmış. Eğer farklı farklı yapmak istiyorsanız;

    if kullanarak form 1 / 2 / 3 hangisi açık ise onu check edip ona göre yazıcı atayabilirsiniz veya direkt form 1 de termal1 form 2 de termal2 şeklinde yapabilirsiniz.

    Alternatif olarak yazıcıları forma listeleyip kullanıcıya seçtirerek bastırabilirsiniz bunun için örnek;
    https://msdn.microsoft.com/en-us/lib...v=vs.110).aspx