Makale Özeti

.Net bize program yazarken çevre birimleri rahatlıkla yönetebileceğimiz kontroller sunar. Yazıcı da bunlardan biri. Elimizdeki dökümanı yazdırabilmek için .net ile gelen diyalog kutularını kullanabiliriz. PrintDialog, PrintPreviewDialog, PrintPreviewControl, PrintSetupDialog gibi diyalog kutuları vardır.

Makale

Kontrol Kullanımı İle Yazdırma

Kontrol Kullanımı İle Yazdırma

.net bize program yazarken çevre birimleri rahatlıkla yönetebileceğimiz kontroller sunar. Yazıcı da bunlardan biri. Elimizdeki dökümanı yazdırabilmek için .net ile gelen diyalog kutularını kullanabiliriz. PrintDialog, PrintPreviewDialog, PrintPreviewControl, PrintSetupDialog gibi diyalog kutuları vardır.

Şimdi hem bu kontrolleri açıklayalım hem de bir örnek üzerinde nasıl kullanıldığına bakalım.

Form üzerine Textbox, MainMenu, PrintDocument, PrintDialog, PageSetupDialog, PrintPreviewControl, PrintPreviewDialog kontrollerini yerleştirelim. İsimlendirmeleri şekilde görüldüğü gibi yapalım.

Şekil - 1 : Form tasarımı.

PrintDocument
PrintDocument kontrolünü dökümanı yazıcıya göndermek için kullanırız.

  Private Sub PrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles printDocument.PrintPage

        e.Graphics.DrawString(txtPrint.Text, New Font("arial", 12, FontStyle.Regular), Brushes.Black, 100, 100)

     End Sub

PrintPage olayı, geçerli olan sayfayı çıktı olarak almak istediğimizde gerçekleşen bir olaydır. e değişkeni PrintPageEventArg sınıfından türetilmiştir. PrintPageEventArgs, PrintPage olayı için özel ayarlar yapmamızı sağlar. e değişkeninin Graphics.DrawString yöntemi ile elimizdeki veri için belirlediğimiz formatta çıktı alabiliriz. Graphics.DrawString Brush ve Font nesnelerini kullanır.

Çıktı olarak almak istediğimiz yazının formatını belirliyoruz. Hangi yazıyı, bizim örneğimizde txtPrint kontrolünün içeriği, yazdıracağımızı belirtiyoruz. Brush ve Font nesnelerini kullanarak yazı tipini, boyutunu, stilini, rengini ve başlama koordinatlarını veriyoruz.

PrintDialog
PrintDialog kontrolü yazıcı seçimi, yazdırılacak sayfa seçimi ve yazıcıyla ilgili ayarlamaları yapmamıza sağlayan bir kontrol. Kullanıcının bütün dökümanı yazdırmasını, veya doküman içinden istediği sayfayı yazdırmasını, bir sayfadan kaç tane yazdıracağı ayarları bu kontrol aracılığıyla yapılabilir.


Şekil - 2 : Yazıcı Ayarları

PrintDialog kontrolünün çalışması için herhangi bir dökümana bağlanması gerekiyor. Properties penceresinden ‘document’ özelliğine ilgili printDocument bileşenini atarız. Bunu properties penceresinin haricinde kod ile de yapabilirsiniz. PrintDialog nesnesinin Document özelliği, Properties penceresi ya da kod üzerinde ilgili printDocument ile ilişkilendirilmesi gerekiyor.

   Private Sub mnuPrintSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPrintSetup.Click

        yazıcı seçimi ve yazıcı ayarları için kullanılan iletişim kutusu ekrana gelir.

        PrintDialog.ShowDialog()

  ShowDialog : ekrana ayarlamak yapmak için formun açıklmasını sağlar

    End Sub

PrintPreviewControl
PrintPreviewControl kontrolü, PrintDocumentin önizlemesini görüntülemekte kullanılır. Bize belgenin görüntülenmesi dışında herhangi bir seçenek sunmaz.  

Private Sub mnuPrintPreviewControl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPrintPreviewControl.Click

        PrintPreviewControl.Document = printDocument

        doküman ilişkilendirmeyi kod ile de yapabileceğimizi söylemiştik.
        menuye tıklandığında PreviewControl kontrolü ile ilgili dökümanı ilişkilendirerek önizlemesini sağlamış oluyoruz.
  ilişkilendirmezsek boş bir ekrandan başka bir şey göremeyiz.

End Sub

Şekil - 3 : PrintPreviewControl Kontrolü.

PrintPreviewControl kontrolünün Properties penceresinden ‘zoom’ özelliğini kullanarak önizleme sırasında dökümanın ne kadar yakınlaşacağını belirleyebiliriz.

PrintPreviewDialog

PrintPreviewDialog kontrolü sayesinde sayfanın önizleme sırasında görünüm özellikleri daha da fazlalaşıyor. PrintPreviewDialog; yazdırmadan önce yazdırmak isteğimiz dökümanın nasıl görüneceğini bakmak için kullandığımız kontroldür. PrintPreviewDialog kontrolü ile ekrana açılan formda, yazdırmak istediğimiz dökümanı isteğimiz şekilde; yakınlaştırarak, uzaklaştırarak, sayfaları teker teker veya çoklu olarak görmemizi sağlayan butonlar vardır.

PrintDialog kontrolünde olduğu gibi PrintPreviewDialog kontrolünün de herhangi bir dökümanla ilişkilendirilmesi gerekmektedir. Properties penceresinden ‘document’özelliğine bizim örneğimizde kullandığımız ‘printDocument’ i gösteriyoruz.

Şekil - 4 : PrintPreviewDialog Kontrolü.

 Private Sub mnuPrintPreview_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPrintPreview.Click

        önizlemeyi görüntülemek için ve yazdırmak için standart kullanıcı arabirimi araçlarını sağlayan diyalog kutusu ekrana gelir.

        PrintPreviewDialog.ShowDialog()

    End Sub


PrintPreview iletişim kutusunun görüntülenmesi için ShowDialog metodu kullanılır.

PageSetupDialog
PageSetupDialog kontrolü yazdırmak istediğimiz sayfanın ayarlarını daha detaylı yapmak için kullanılan kontroldür. Sayfanın kenarlık ayarlarını, başlık ayarlarını ve sayfanın dikey yada düşey olacağını, kullanılacak sayfanın boyutu için gereken ayarları düzenlememizi sağlayan kontroldür.

Şekil - 5 : Sayfa özelliklerini ayarlama arayüzü.

PageSetupDialog kontrolünün ‘document’ özelliğine örneğimizdeki ‘printDocument’ i ilişkilendiriyoruz.
ShowDialog metodu ile iletişim kutusunun görüntülüyoruz.

    Private Sub mnuPageSetup_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPageSetup.Click

        sayfanın kenar boşlukları, yatay veya dikey yazdırılacağı ayarlarını yapmamızı sağlayan diyalog kutusu: PageSetupDialog.

        PageSetupDialog.ShowDialog()

    End Sub

Yazdırma İşlemi

Yazdırmak için tabi ki bilgisayarımıza bir yazıcı tanıtılı olması gerekiyor. Doküman için menüden ‘Print’ komutu verdiğimizde, dökümanımız yazdırılacaktır.

  Private Sub mnuPrintDoc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuPrintDoc.Click

        sayfanın yazdırılmasını sağlıyor.

        printDocument.Print()

    End Sub

Şekil - 6 : Yazdırma işlemi.

 

Böylece kontrolleri kullanarak yazdırma işlemini gerçekleştirmiş olduk.

 

 

Öznur KARAKUŞOĞLU
oznurkarakusoglu@hotmail.com