VISUAL Basic.NET 2005

PrintDocument Sınıfını Kullanarak Programlarınızda Yazdırma İşlemi Yaptırın.

Bu dersimizde VB.NET 2005 IDE ile çalışmalarımızda nasıl yazıcı çıktısı aldırabileceğimizi öğreneceğiz.
Bir çok Windows uygulaması, oluşturduğunuz belgelerin çıktısını almanıza izin verir. Bu sınıfta VB 6.0'a göre VB.NET 2005 büyük gelişmeler göstermiştir. Bu Web programlarımızda ki gibi basit bir iş değildir. Hedefimize yönelik bir teknik kullanmamız gerekmektedir. Visual Basic 2005'te yazdırma işlemlerinde bize yardımcı olacak sınıf PrintDocument sınıfıdır.

Projeniz içinde bu sınıfı oluşturmanın iki yolu vardır.

  • Formunuza "PrintDocument" denetimi eklemek.

  • Bir kaç satır VB kodu ile sınıfı program içinde tanımlayarak


  • PrintDocument sınıfı text ve resim yazdırmak için bir takım kullanılışlı nesnelere sahiptir.Bunlardan biraz bahsedecek olursak bir yazıcı için varsayılan ayaları içeren PrinterSettings nesnesi, Belirli bir sayfa için yazdırma ayarlarını tutan PageSettings nesnesi ve yazdıracağınız sayfa ile ilgili olay bilgilerini içeren PrintPageEventArgs nesnesi bulunur. PrintDocument sınıfı, System.Drawing.Printing namespaces'inde yer alır.
    Forma bir PrintDocument nesnesi eklediğinizde, PrintDocument sınıfındaki bazı nesneler projenize otomatik olarak eklenir ama yinede aşağıda ki Imports ifadesini form kodunun en üst kısmına eklemeniz gerekir.


    Imports System.Drawing.Printing



    Bu ifade, PrintingPageEventArgs ve diğer önemli değerleri tanımlar.
    Bir programda PrintDocument sınıfını nasıl kullanacağınızı öğrenmek için projenize bir PrintDocument nesnesi eklemek ve bunun sistemdeki bir grafik dosyasını yazdırmak için kullanmak üzere aşağıda yazacağım alıştırmayı deneyin.

    İlk olarak Microsoft Visual Studio 2005'i başlatın ve SK Print Graphics adlı yeni bir VB Windows Application projesi oluşturun.

    Formun üst kısmına bir etiket nesnesi çizmek için Label denetimini kullanın.

    Etiket nesnesinin altına bir metin kutusu nesnesi çizmek için TextBox denetimini kullanın.
    NOT: Metin kutusu nesnesini, açmak istediğiniz grafik dosyasının adını yazmak için kullanacaksınız.Tek satırlı bir metin kutusu yeterlidir.

    Metin kutusunun altına Button denetimi ile bir düğme nesnesi çiziniz.
    Bu düğme grafik dosyasını yazdıracak.Şimdi bir PrintDocument denetimi ekleyeceğiz.

    Toolbox'ın Printing sekmesinde PrintDocument denetimine çift tıklayınız.

    Aynı Timer denetimi gibi, PrintDocument denetimi de çalışma zamanında (Run Time) görünmediği için forma eklediğinizde formun altında ki bileşen tepsisine yerleştirilir.Artık projenizin PrintDocument sınıfına ve onun işlevsel yazdırma nesnelerine erişimi vardır.

    Formdaki nesneler için aşağıdaki özellik ayarlamalarını yapın.


    NESNE ------> ÖZELLİK ------> AYAR

    Label1   ------> Text  ------> "Yazdıracağınız grafik dosyasının adını giriniz."

    TextBox1 ------> Text ------> "Güzel Bir iconun dosya yolunu yazınız."

    Buttom1  ------> Text ------> "Grafik Yazdır"

    Form1    ------> Text  ------> "Grafik Yazdır"




    Şimdi bir grafik dosyasını (bit eşlem,simge,meta dosyası,JPEG dosyasını, vb.) yazdırmak için gereken kodu eklyeceğiz.

    Grafik Yazdır düğmesine çıft tıklayınız.

    Code Editor'da Button1_Click olay yordamı görünür.

    Form kodunun en üst kısmına gidin ve aşağıdaki program ifadesini yazdırın.

    Imports System.Drawing.Printing

    Imports ifadesi PrintGraphic yordamı içindeki PrintPageEventArgs nenesini tanımlamak için gereken System.Drawing.Printing namespaces'nin bildirimini yapar. PringGraphic yordamı daha sonraki bir adımda eklenecektir.(Diğer PrintDocument nesneleri,tanımlarını PrintDocument nesnesinden alacaklardır.

    Button1_Click olay yordamına gidin ve aşağıda yazdığım program kodunu oraya yazınız.


    'Yazdırma işlemde ki olası hatalar için hata ayıklayıcı kullan

    Try

      AddHandler PrintDocument1.PrintPage, AddressOf Me.GrafikYazdır

      PrintDocument1.Print() 'Grafik Yazdır

    Catch ex As Exception 'Yazdırma Hatasını Yakala

      MessageBox.Show("Sevgili SK Öğrencisi Yazdırma İşleminde Bir Sorun Var", _

    ex.ToString())

    End Try



    Bu kod PrintDocument1 nesnesinin PrintPage olayı tetiklendiğinde çağrılması gereken GrafikYazdır olay işleyicisini belirleyen AddHandler ifadesini kullanır.Daha önce hata yakalayıcılarını görmüşsünüzdür. Bir Olay İşleyici hata işleyicilerle yakından ilişkilidir ve teknik açıdan hata olmayan ama bir nesnenin kullanım sürecindeki önemli eylemleri temsil eden sistem olaylarını yürütür.

    Bu örneğimizde belirtilen olay işleyici, yazdırma hizmetleriyle ilişkilidir ve istek,yazdırılacak sayfayla ilgili bilgiler, geçerli yazıcı ayarlarını ve PrintDocument sınıfındaki diğer özelliklerle birlikte gelir. Teknik olarak, AdressOf işleci PrintGraphic olay işleyicisini iç adresini belirleyip kaydederek tanımlamak için kullanır.AdressOf işleci temsilci(delegate) olarak adlandırılan ve bir olay gerçekleştiğinde uygun olay işleyicisine çağrı aktaran kapalı bir nesne oluşturur.

    Yukarıda yazdığım kodun üçüncü satırı, PrintDocument1 nesnesinin Print yöntemini kullanarak bir sonraki adımda oluştıracağınız GrafikYazdır olay yordamına bir yazdırma isteği gönderir. Yazdırma isteği, yazdırma işlemi sırasında olabilecek hataları yakalamak için bir "Try" kod bloğu içine yerleştirilmiştir.

    Code Editor'da Button1_Click olay yordamının üst kısmındaki Public Class Form1 ifadesinin altındaki genel bildirim alanına gidin.Aşağıda ki Sub yordamının bildirimini yazdığım gibi yazın.


    'Grafiği yazdırmak için sub yordamı



    Private Sub GrafikYazdır(ByVal sender as Object, _

    ByVal ev As PrintPageEventArgs)

    'DrawImage ile grafiği oluştur.

    ev.Graphic.DrawImage(Image.FromFile(TextBox1.Text), _

    ev.Graphic.VisibleClipBounds)

    'Bunu yazdırılacak son sayfa olarak belirle

    ev.HasMorePage = False

    'Belirledik

    End Sub



    Bu yordam, PrintDocument1.Print yöntemi tarafından oluşturulan yazdırma olayını yürütür.Sub yordamının bildirimini form kodu içinde yaptım ama siz bu bildirimi bir standart modül içinde genel amaçlı bir yordam olarak da yapabilirsiniz. GrafikYazdır yordamının bağımsız değişken listesindeki ev değişkenine dikkat edin.Bu değişken geçerli yazdırmas sayfası hakkında önemli bilgiler taşır ve bildirimi System.Drawing.Printing namespaces'inde bir nesne olan PrintPageEventArgs türünde yapılmıştır.

    Yordam, grafik yazdırma işlemini gerçekleştirmek için geçerli yazdırma sayfasıyla ilişkili olan Graphic.DrawImage yöntemini kullanır.Bu yöntem, TextBox1 nesnesinin Text özelliğinde kayıtlı dosya adını kullanarak bir grafik dosyası yükler.Son olarak da Visual Basic'e yazdırma işleminde birden çok sayfa olmadığını bildirmek için ev.HasMorePage özelliğini false olarak ayarladım.

    Şimdi değişikliklerinizi kaydetmek için Standart araç çubuğundaki Save All(Tümünü Kaydet) düğmesine tıklayın ve klasör konumu belirterek çalışmanızı kaydediniz.

    Artık programı çalıştırmaya hazırsınız. Bunu yapmadan mce sisteminizdeki yazdırabileceğiniz grafik dosyalarının yerlerini belirleyiniz. Dosya yollarını not etmeyi unutmayınız.

    Hepinize Başarılar Diliyorum.

    Bir Sonraki Makalede Görüşmek Üzere.

    Microsoft Visual Studio.NET 2008'i incelemeyi unutmayınız.
    • Etiketler;
    Hakan Ayaz Damar
    Hakkında bilgi en kısa sürede eklenecektir.
    Yorum Yaz

    Yorum yazabilmek için üye girişi yapmanız gerekiyor!

    SAOLUN HOCAM
    yeni üye oldum ve çok hoşuma gitti tam olarak okuyamdım ama sonra devam edrim
    mrb arkadaslar benim visual baciste ekran koruyucu yapmam lazım yardım ellerini uzatmanızı bekliorum fazla zaman yokk calışan ğüzel kodlarınız warsa ğöndermesini rica ediorum:(
    VISUAL Basic.NET te exe olusturmayı bilen varmı
    bilgiler güzel tşk..
    meraba ben daha yeni öğrenicem biraz visual basic biliyorum ama 2005 de öğrenmek istiyorum lise 2 ye gidiyorum bölüm bilgisayar bu lise 3 de bu dersi göreceğiz onun için benim daha detaylı bilgiye gerek var daha fazla detay koyarsanız sevinirim bu bilgiler de güzel ellernize sağlık simdiden çok tesekkür ederim
    Saolun Thanks For Loading
    merhaba arkadaşlar visual basic hakkında çok az şey biliorum bana yardımcı olurmusunuz

    Yukarı Git