Şimdi Ara

VB 6.0 da print out sorunu

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
18
Cevap
0
Favori
855
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Arkadaşlar,Visual basic projemde formdan print out almak istiyorum, "form1.printform" Kodunu yazdım error weriyo:( print almam için ne yapmam gerek

    teşekkürler



  • Windows Api si kullanarak daha sonra görüntüyü capture etmelisn kullanacağın api;

    PrintWindow Lib "user32.dll" (ByVal _
    hwnd As IntPtr, ByVal hdcBlt As IntPtr, ByVal nFlags As _
    UInt32) As Boolean
  • yeniyim bu konuda
    ayrıntılı bi açıklama yaparsan sewinirim,teşekkürler şimdiden
  • işletim sistemin ne çünkü ona göre api bulacağım.
  • win xp pro service pack 2
    api nasıl bulunucak ki?
  • Sana ilk verdiğim Api PrintWindow Xp çalışıyoe ama 2000'lerde çalışmuyor ondan sordum...

    http://support.microsoft.com/default.aspx?scid=kb;en-us;85978

    Bu sayfayı incele tam işine yarayacak.
    Ayrıca captute fonksiyonu;


    Private Declare Function PrintWindow Lib "user32.dll" (ByVal _
    hwnd As IntPtr, ByVal hdcBlt As IntPtr, ByVal nFlags As _
    UInt32) As Boolean
    Dim screenGrab As Bitmap

    Private Sub CaptureScreen()
    'captures Form1 into screenGrab
    screenGrab = New Bitmap(Me.Width, Me.Height)
    Dim g As Graphics = Graphics.FromImage(screenGrab)
    Dim hdc As IntPtr = g.GetHdc
    Form1.PrintWindow(Me.Handle, hdc, Nothing)
    g.ReleaseHdc(hdc)
    g.Flush()
    g.Dispose()
    'could just save the screenshot:
    'screenGrab.save("c:\screenshot1")
    End Sub


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

    End Sub




  • ilk iki sub ı general decleration kısmına
    diğerini print komut buttonuna yazıcaz sanırım
    print buttonunda yazılı olan handles button6.click ne demek oluyo
  • Yapay Zeka’dan İlgili Konular
    Daha Fazla Göster
  • Evet.

    O da button6 da button1 olucak kodda button6 idi ilk kısmı düzeltmiştim fakat handle kısmında kalmış. Bu kodu .Net de yazdım onun için standard vb test etme şansım yok çünkü vb kullanmuyorum.
  • vb de olmuyo malesef
    capturescreen diye prosedür fln tanımıyo
    bunun çalıştığından emin misin
  • Api'yi çalıştırmuyor olmasın.

    Sana gönderdiğim linki incelersen istediğin olur. Bana VB kurdutturma. 2 seneden beri ilişkimi kestim.
  • Form1.printform çalışması gerekir...

    Bilgisayarınızda bir yazıcı yüklü durumdamı ? Eğer yok ise exception döndürür...

    Eğer printer sız bir makinada çalışıyorsanız alakasız bir driver yükleyerek Yazıcı ekle kısmından Baskı önizleme özelliğini kullanabilirsiniz.



    < Bu mesaj bu kişi tarafından değiştirildi irfanmatak -- 28 Temmuz 2005, 20:22:50 >
  • sevgili aspci79 dediğini düşündüm ve Form1.printform komutunu ewimdeki printerda kullandım
    print yapmaya başladı ama soldan başlayarak sağ tarafı yarım print etti,ama en azından print out çıkardı
    işyerimdeki printer ağdan kullanımda olan bi printer onda ise error wermişti,ne yapmalıyım sence?teşekkürler ilgine, sen de olmasan...
  • Yaa arkadaşlar,VB 6.0 da print yapamıyacağım anlaşılan
    kimseden işe yarayan bi fikir halen alabilmiş diilim
  • quote:

    Yaa arkadaşlar,VB 6.0 da print yapamıyacağım anlaşılan
    kimseden işe yarayan bi fikir halen alabilmiş diilim


    Kusura Bakmayın Baya yoğunum Söylediğim şekilde sorununuz demekki yazıcı driverından.
    Fikir olarak belki yardım edebilir. :)

    Öncelikle bir Beyaz form oluşturun ve boyutunu A4 olarak boyutlandırın.

    Label yada text'leri yazı çıktısı şeklinde dizgi yapın form üzerine
    Çıktı alıcağınız zaman gönderme yaparak printform yaparsınız...

    yazdirform.text1 = form1.text1.text
    yazdirform.text2 = form1.text2.text

    ...
    yazdirform.printform

    Derseniz direkt çıktı alırsınız...

    Ağ yazıcısını bilgisayarınızda varsayılan yazıcı yaparsanız sorun ortadan kalkacaktır.




  • Sevgili aspci79; Form1.printform komutunun formun çıktısı için yeterli bi komut olacağını zannetmiyorum,sanırım api fln bulmak gerek,bu arada ağdaki printer benim default printer cnm
    yardımcı olursan sevinirim,print butonuna basınca formun çıktısını almak istiyorum,çokkarmaşık bişey istemiyorum yane,kaçgündür çözebilmiş diilim
  • quote:

    Orjinalden alıntı: asli

    Sevgili aspci79; Form1.printform komutunun formun çıktısı için yeterli bi komut olacağını zannetmiyorum,sanırım api fln bulmak gerek,bu arada ağdaki printer benim default printer cnm
    yardımcı olursan sevinirim,print butonuna basınca formun çıktısını almak istiyorum,çokkarmaşık bişey istemiyorum yane,kaçgündür çözebilmiş diilim



    Ben eski dosyalama sistemleri ile hazırladığım projelerde tabii bu olay seneler önce olan bir olay anlattığım şekilde çıktı alabilmeniz gerekir. Görsel aktarmalarda bir miktar yavaşlık olur sadece onun dışında herhangi bir sorun yaşamazsınız. Sorun yaşıyorsanız bilgisayarınızda yada sisteminizle yazıcı arasında bir sorun olabilir ağ yazıcınız varsayılan olarak ayarlı ise bu şekilde düşündüm.

    Fakat yukarıda anlattığım şekilde kullanım doğru kendim bizzat geçmişte kullandığım için eminim. Kod örneği yollasarsanız dahada fazla fikir üretebiliriz belki ama işlerim yüzünden söz veremiyorum maalesef.




  • Sence şu aşagıdaki komutlardan ne elde edilir? neyi nereye yazacağımı kararlaştıramadım,general declaretions kısmına mı yazılıcak?

    Private Sub pd_PrintPage(ByVal sender As Object, _
    ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
    Handles pd.PrintPage
    e.Graphics.DrawImage(formImage, 0, 0)
    pd.DefaultPageSettings.Landscape = True
    End Sub
    Private Sub GetFormImage()
    Dim g As Graphics = Me.CreateGraphics()
    Dim s As Size = Me.Size
    formImage = New Bitmap(s.Width, s.Height, g)
    Dim mg As Graphics = Graphics.FromImage(formImage)
    Dim dc1 As IntPtr = g.GetHdc
    Dim dc2 As IntPtr = mg.GetHdc
    ' added code to compute and capture the form
    BitBlt(dc2, 0, 0, Me.ClientSize.Width, Me.ClientSize.Height, dc1, 0, 0, 13369376)
    g.ReleaseHdc(dc1)
    mg.ReleaseHdc(dc2)
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.Load
    ' create an instance of the PrintDocument component
    pd = New Printing.PrintDocument
    Me.StartPosition = FormStartPosition.CenterScreen
    pd.DefaultPageSettings.Landscape = True
    End Sub

    Private Sub Print_Click(ByVal sender As _
    System.Object, ByVal e As System.EventArgs) _
    Handles Print.Click
    GetFormImage()
    pd.Print()
    End Sub




  • Şimdi Bahsettiğimizi şeyler çok farklıymış bir kere :)

    Kodları fazla analiz edemedim ama

    formImage değişkenini Private deklare etmelisin çünkü farklı yordamlar tarafından kullanılıyor.

    en üstteki subın dışında

    private formImage as Variant // Örn.

    Kod sanıyorum form üzerinde grafik oluşturup yazıyor. Birde bunu dene bakalım . !
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.