VB.NET: Mengenal Komponen PrintDocument

Selama ini untuk urusan printing atau cetak yang pernah Rani pakai diantara nya Active Report (versi buat VB6, Crystal Report 8.5 juga Crystal Report yang buat .NET, dan SSRS alias SQL Server Reporting Service.

Kemudian timbul pertanyaan:
Mungkinkah mencetak/print tanpa aplikasi tambahan? seperti aplikasi2 reporting yang disebutkan diatas?
Apakah ada aplikasi reporting gratis bagi pengguna Visual Studio Community? Atau fasilitas printing bawaan dari Visual Studio nya?

Ternyata ada temans... kita bisa pakai komponen bawaan yang namanya PrintDocument.
Mari kita lihat di bagian jendela Tools.


Oke, langsung aja ya kita kenalan dengan gimana cara kerjanya. Buat project window form baru. Trus kita tambahin 2 komponen pada form yaitu button dan PrintDocument. Seperti gambar di bawah:


Kemudian kita akan coba print "Hello World!" dengan cetak wana biru. Karena emang ga lengkap klo belajar koding tanpa kata sakti ini.

Jika komponen PrintDocument1 kita double click, otomatis event terbentuk adalah PrintPage.
Kita tambahkan teks untuk dicetak.

Private Sub PrintDocument1_PrintPage(sender As Object, _
            e As Printing.PrintPageEventArgs) _
            Handles PrintDocument1.PrintPage

 e.Graphics.DrawString("Hello World!", Me.Font, Brushes.Blue, 100, 100)

End Sub

Penjelasan kode:
e.Graphics.DrawStringberfungsi untuk mencetak teks string
"Hello World!"adalah nilai string yang akan dicetak
Me.Fontini adalah font yang digunakan untuk mencetak, sementara saya ambil dari font punya-nya form. Saya jelaskan lebih lanjut di artikel selanjutnya
Brushes.Bluemerupakan warna teks yang akan dicetak
100, 100yang ini adalah point x, y dimana x adalah posisi jarak dari kiri dan y adalah posisi jarak dari kanan.

Kemudian kita akan trigger proses printing pada saat button1 di click.

Private Sub Button1_Click(sender As Object, e As EventArgs) _
        Handles Button1.Click
        PrintDocument1.Print()
End Sub

Lalu... mari kita coba run, siapkan printer kalian kawan. Karena ini akan langsung mengirim perintah cetak ke printer.


Klo rani pakai pdf printer jadi proses print disimulasikan ke dalam bentuk pdf. Klik Button1.
Dan kira-kira hasil cetak nya akan begini:



Untuk memperjelas tentang posisi x,y point kita lihat penjelasannya pada gambar di bawah:



Kode lengkap nya sebagai berikut:
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgs) _
        Handles Button1.Click
        PrintDocument1.Print()
    End Sub

    Private Sub PrintDocument1_PrintPage(sender As Object, _
            e As Printing.PrintPageEventArgs) _
            Handles PrintDocument1.PrintPage
        e.Graphics.DrawString("Hello World!"Me.Font, Brushes.Blue, 100, 100)
    End Sub

End Class

Saya ga janji ini bakalan mudah atau gampang. Tapi klo udah terbiasa ya asik-asik aja sih.
So, buat kalian yang penasaran bagaimana PrintDocument bisa bekerja sebagai fasilitas reporting, tetep pantengin blog ini.
Insya Allah Rani update terus buat jelasin step by step reporting pakai Komponen PrintDocument ini.

Lanjut kesini yah!

Post a Comment

0 Comments