|
|
|
VISUAL Basic.NET 2005
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.
|
|
|
|
|
|
|
Bugün 21 ziyaretçi BuRaDaYDı..!
|
|
|
|
|
|
|
|