Vb 2010 Yazdırma İşlemleri(Geniş Anlatım)

sforum

Üye
5 Eki 2009
167
0
Lüleburgaz
----->>> Emeğe saygı arkadaşlar . Teşekkür butonunu unutmayalım .. Kendi anlatımımdır.

PRINTING

Visual Studio , içerisinde üç adet yazıcı işlemleri için diyalog kutusu barındırır ki bunlar PrintPreviewDialog, PageSetupDialog ve PrintDialog nesneleridir. Yazdıgımız uygulamayı kullanan* kişi, yazdıracağı dökümanı önizleme yapmak , sayfa ayarlarını ve yazıcının kendisini değiştirmek isterse bu araçlar yardımı ile *işlemleri çok rahat bir şekilde yapabilir.

PrintPreviewControl: Bu nesne, yazdıracağımız dokümanı ekranda önizleme olarak görmemizi sağlar.

PrintPreviewDialog: Bu nesne, baskı önizleme işlemlerini yapmamızı sağlar ve ayriyeten bazı ek özellikler içerir. Örneğin dokümanı ekranda büyütüp küçültmek,bir veya daha çok sayfayı görüntülemek gibi.

PageSetupDialog: Bu nesne dokümanın sayfa ayarlarını yapar. Örneğin Sayfanın yatay veya dikey olması, sağ ve sol boşluk ayarları gibi.

NOT : PrintPreviewDialog ayni zamanda içinde PrintPreviewControl bilesenini de barindirir. Yani PrintPreviewControl’la yapabilecegimiz islemleri ve daha fazlasini PrintPreviewDialog da yapabiliriz.


PrintPreviewDialog Kontrolünün Kullanimi

Formumuza bir PrintD O C U M E N T bileşeni ekliyoruz ve Çalışma anında bir PreviewDialog oluşturarak isleme başlıyoruz ve PrintPreviewDialog nesnesini PrintD O C U M E N Te bağlıyoruz

Kod:
Dim preview As New PrintPreviewDialog
		preview.D O C U M E N T = Me.PrintD O C U M E N T1
		preview.WindowState = FormWindowState.Maximized
		preview.PrintPreviewControl.StartPage = 0
		preview.PrintPreviewControl.Zoom = 1.0

Burada diyalog kutumuzun, tam ekran çıkmasını ve ilk görülen sayfanın birinci sayfa olmasını istiyoruz. Son satırda ise büyütme oranını (Zoom Size) seçiyoruz. (Yukarıdaki örnekte %100 olarak seçtik.)


Kod:
preview.PrintPreviewControl.Columns = 2

Ekranda gözükecek sayfa sayısını ayarlamaktadır.

Kod:
preview.ShowDialog()

Bu kod parçasını da ekledikten sonra artık tam ekran bir baskı öznizleme ekranı karşımızda oluyor.


PageSetupDialog Kullanimi

PageSetupDialog kontrolü, sayfa düzenlerini ayarlamamıza yarayan bir bileşendir. Bu kontrol, bize sayfa ayarlarını düzenlemek için kolay bir diyalog kutusu sağlar. Bu dialog kutusu ile kullanıcıya sayfa sınır ve marj ayarlarını ve yatay/dikey basım ayarlarını değiştirme imkanını tanırsınız.
Bu nesne, kendi içerisindeki PageSettings özelliği ile PrintD o c u m e n t ve PageSetupDialog nesnesinin sayfa ayarlarını içerir.
Formumuza bir PageSetupDialog bileşenini ve PrintD o c u m e n t bileşeni ekliyoruz.
Öncelikle daha önce olusturdugumuz PrintD o c u m e n t nesnesini PageSetupDialog’a bagliyoruz


Kod:
Me.PageSetupDialog1.D o c u m e n t = Me.PrintD o c u m e n t1

Bu şekilde artik yaptığımız değişiklikler dokümanımıza yansiyacaktır. Bu değişiklikleri yapabileceğimiz diyalog kutusunu nasıl ekrana getireceğimizi gösteren kod sudur:

Kod:
Me.PageSetupDialog1.ShowDialog()


PageSetupDialog‘un kodla degistirebilecegimiz bazi özellikleri vardır. Bu özellikler sayesinde hiç diyalog kutusunu ekrana getirmeden kodla yapacagimiz degisikliklerle istedigimiz ayarlarda çikti alabiliriz.

Kod:
PageSetupDialog1.PageSettings.Landscape =True

Çiktinin yatay çikmasini saglar

Kod:
PageSetupDialog1.PrinterSettings.Copies = 2

Çiktidan kaç kopya alacagimizi seçebiliriz.

Kod:
 PageSetupDialog1.PrinterSettings.FromPage = 10

Çiktinin kaçinci sayafadan baslayacagini seçmemizi saglar.


PrintDialog Nesnesi​


PrintDialog nesnesi ile printer ayarlarimiz görsel olarak yapmamizi saglayan bir diyalog kutusudur.
Kullanimi diger diyalog kutularinda oldugu gibidir. Öncelikle PrintD o c u m e n t nesnemizi baglamamiz gerekmektedir.
PrintDialog nesnesini formumuza ekliyoruz. Daha sonra D o c u m e n t özelligine aktif PrintD o c u m e n t nesnemizi atiyoruz.



Kod:
PrintDialog1.D o c u m e n t = Me.PrintD o c u m e n t1


PrintDialog nesnesine* PrintD o c u m e n t’i bagladiktan sonra, artik bu diyalog penceresinde yapmis oldugumuz printer degisiklikleri ve diger özellikler yazicidan aldigimiz çiktiya yansiyacaktir. Asagida ki kodla diyalog penceresini ekrana çikartiyoruz.

Kod:
PrintDialog1.ShowDialog()

Ayni PageSetupDialog1.PrinterSettings ayarlarinda oldugu gibi istedigimiz ayarlari kodlarla da kontrol edebiliyoruz.


Metin kutumuzun içeriğini yazıcıya aktarabilmek için,işlemimize başlarken formumuza yerleştirmiş olduğumuz "PrintD o c u m e n t" bileşeninin, "Graphics" nesnesinin "DrawString" metodunu kullanıyoruz, bu işlem için formumuzdaki "PrintD o c u m e n t kontrolünün "PrintPage" olayına aşağıdaki komut dizimini girmemiz gerekmektedir.


Kod:
e.Graphics.DrawString(textbox1.text, New Font("Tahoma", 30, FontStyle.Bold ),  Brushes.Black, 200, 200)


h9hbh.png


Kod:
Public Class Form1
    Dim olcekdurumu As Boolean
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.OpenFileDialog1.Filter = "Resim Dosyalari|*.jpg"
        Me.PageSetupDialog1.D o c u m e n t = Me.PrintD o c u m e n t 1
        Me.PrintDialog1.D o c u m e n t = Me.PrintD o c u m e n t 1
        Me.PrintPreviewDialog1.D o c u  m e n t = Me.PrintD o c u m e n t 1
        Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
    End Sub

 Private Sub btn_baskıonizleme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_baskıonizleme.Click
        Me.PageSetupDialog1.ShowDialog()
    End Sub
    Private Sub btn_printayar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_printayar.Click
        Me.PrintDialog1.ShowDialog()
    End Sub

Kod:
Private Sub Btn_ResimAc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_ResimAc.Click
        If Me.OpenFileDialog1.ShowDialog Then
            Me.PictureBox1.Image = Image.FromFile(Me.OpenFileDialog1.FileName)
        End If
        If MessageBox.Show("Resim Ölçeklendirilsin mi?", "", MessageBoxButtons.OKCancel, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1) = Windows.Forms.DialogResult.OK Then
            olcekdurumu = True
        Else
            olcekdurumu = False
        End If
End Sub

Private Sub btn_yazdır_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_yazdır.Click
        Me.PrintD o c u m e n t1.Print()
End Sub

Kod:
Private Sub PrintD o c u m e n t1_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles Print********1.PrintPage
        Dim y As Integer
        If olcekdurumu = True Then
            Dim rec As New Rectangle(100, 100, 100, 100)
            e.Graphics.DrawImage(Me.PictureBox1.Image, rec)
            y = 100 + 100
        Else
            Dim rec As New Rectangle(0, 0, Me.PictureBox1.Image.Width, Me.PictureBox1.Image.Height)
            e.Graphics.DrawImage(Me.PictureBox1.Image, rec)
            y = Me.PictureBox1.Image.Height
        End If
        e.Graphics.DrawString(Me.TextBox1.Text, Me.TextBox1.Font, Brushes.Black, 100, y)
    End Sub
Private Sub btn_fontayar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_fontayar.Click
        If Me.FontDialog1.ShowDialog Then
            Me.TextBox1.Font = Me.FontDialog1.Font
        End If
    End Sub
End Class


h9hgh.png


h9hhh.png


Kod:
Public Class Form1
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        PictureBox1.Image = Image.FromFile("C:\D o c u m e n ts and Settings\ozcan\Belgelerim\Resimlerim\ozcan.jpg")
        PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
        PrintPreviewDialog1.D o c u m e n t = PrintD o c u m e n t 1
    End Sub
Private Sub ButtonYazdır_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim myprintresult As DialogResult
        myprintresult = PrintDialog1.ShowDialog()
        If myprintresult = DialogResult.OK Then
            PrintD o c u m e n t1.Print()
        End If
    End Sub

Kod:
Private Sub ButtonOnizleme_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        PrintPreviewDialog1.ShowDialog()
    End Sub

    Private Sub ButtonCıkıs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        End
    End Sub

    Private Sub ButtonSyfaAyarları_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        PageSetupDialog1.ShowDialog()
    End Sub

Kod:
Private Sub PrintD o c u m e n t 1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles Print********1.PrintPage
        Dim font1 As Font = New Font("Times New Roman", 24, FontStyle.Underline)
        Dim font2 As Font = New Font("Times New Roman", 12, FontStyle.Regular)
        e.Graphics.DrawString("Çalışan Personel Bilgileri: ", font1, Brushes.Black, 150, 50)
        e.Graphics.DrawLine(Pens.Black, 90, 100, 550, 100)
        e.Graphics.DrawLine(Pens.Black, 90, 40, 550, 40)
        e.Graphics.DrawString("Personelin Adı: " & TextBox1.Text, font2, Brushes.Black, 50, 140)
        e.Graphics.DrawString("Personelin Soyadı: " & TextBox2.Text, font2, Brushes.Black, 50, 170)
        e.Graphics.DrawString("Personelin İşe Giriş Tarihi: " & TextBox3.Text, font2, Brushes.Black, 50, 200)
        e.Graphics.DrawString("Personelin Çalıştığı Birim: " & TextBox4.Text, font2, Brushes.Black, 50, 230)
        e.Graphics.DrawString("Personelin Öğrenim Durumu: " & TextBox5.Text, font2, Brushes.Black, 50, 260)
        e.Graphics.DrawString("Personelin Mezun Olduğu Okul: " & TextBox6.Text, font2, Brushes.Black, 50, 290)
        e.Graphics.DrawString("Personelin Cep Telefonu: " & TextBox7.Text, font2, Brushes.Black, 50, 320)
        e.Graphics.DrawString("Personelin E-Postası: " & TextBox8.Text, font2, Brushes.Black, 50, 350)
        e.Graphics.DrawImage(PictureBox1.Image, 650, 50, 102, 124)
    End Sub
End Class
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.