Lanjut dari artikel ini ya:
https://rani-irsan.blogspot.com/2019/10/vbnet-mengenal-komponen-printdocument.html
Disitu kan cuman perkenalan aja, jadi pakai font dapat comot dari Form biar cepet.
Nah sebenernya bagaimana cara mengatur font yang kita tentukan sendiri jenis, ukuran, dll.
Yaitu mendeklarasikan object font dan mengatur atribut font dengan contoh sebagai berikut:
Detail format nya ada di gambar ya, klo ada pertanyaan langsung di komen aja.
Pertama Rani mau kasih lihat bagian format font style-nya untuk Regular, Bold (cetak tebal) dan Italic (cetak miring).
Dim fnt14Regular As Font = New Font("Arial", 14, FontStyle.Regular, GraphicsUnit.Point)
Dim fnt14Bold As Font = New Font("Arial", 14, FontStyle.Bold, GraphicsUnit.Point)
Dim fnt14Italic As Font = New Font ("Arial", 14, FontStyle.Italic, GraphicsUnit.Point)
Klo yang ini untuk kombinasi Bold dan Italic. Jadi Cetak tebal sekaligus miring.
Dim fnt14ItalicBold As Font = New Font("Arial", 14, _
FontStyle.Italic + FontStyle.Bold, GraphicsUnit.Point)
Jadi pas bagian font style nya digabung pakai tanda tambah gitu.
Lalu kita pakai object-object font ini untuk print beberapa string supaya terlihat perbedaan nya.
Private Sub PrintDocument1_PrintPage(sender As Object, e As Printing.PrintPageEventArgs) _
Handles PrintDocument1.PrintPage
e.Graphics.DrawString("Beautiful Day.", fnt14Regular, Brushes.Black, 100, 100)
e.Graphics.DrawString("Beautiful Day.", fnt14Bold, Brushes.Black, 100, 125)
e.Graphics.DrawString("Beautiful Day.", fnt14Italic, Brushes.Black, 100, 150)
e.Graphics.DrawString("Beautiful Day.", fnt14ItalicBold, Brushes.Black, 100, 175)
End Sub
Coba lihat bagian x,y. Kita akan mencetak string-string ini berurutan ke bawah. Karena itu bagian y kita tambah 25 point untuk setiap barisnya? Dari mana Nilai 25? Saya kira2 aja hahaha...
Ukuran font 14 jadi dari y sebelumnya 14 point ditambah keperluan jarak yang memadai saya tambahkan 11 point lagi jadi 25. (Nanti ada trik khusus untuk ini)
Yang belum paham buat apa itu e.Graphics.DrawString yang ada di PrintDocument1_PrintPage baca artikel sebelumnya yah.
UI nya juga kita samaain aja sama artikel sebelumnya.
Jangan lupa tambahkan event button1_click untuk mentrigger proses printing.
Private Sub Button1_Click(sender As Object, e As EventArgs) _
Handles Button1.Click
PrintDocument1.Print()
End Sub
Kode lengkapnya sebagai berikut:
Public Class Form1
Dim fnt14Regular As Font = New Font("Arial", 14, FontStyle.Regular, GraphicsUnit.Point)
Dim fnt14Bold As Font = New Font("Arial", 14, FontStyle.Bold, GraphicsUnit.Point)
Dim fnt14Italic As Font = New Font ("Arial", 14, FontStyle.Italic, GraphicsUnit.Point)
Dim fnt14ItalicBold As Font = New Font("Arial", 14, FontStyle.Italic + _
FontStyle.Bold, GraphicsUnit.Point)
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("Beautiful Day.", fnt14Regular, Brushes.Black, 100, 100)
e.Graphics.DrawString("Beautiful Day.", fnt14Bold, Brushes.Black, 100, 125)
e.Graphics.DrawString("Beautiful Day.", fnt14Italic, Brushes.Black, 100, 150)
e.Graphics.DrawString("Beautiful Day.", fnt14ItalicBold, Brushes.Black, 100, 175)
End Sub
End Class
Kita coba run.
Kemudian klik Button 1. Dan proses printing ajan tereksekusi.
Untuk simulasi printing Rani pakai pdf printer, dan hasilnya sebagai berikut.
Lanjut yah, buat lihat perbedaan jenis font dan ukuran font. Buat UI kita masih pakai form yang sama tapi kita ubah code nya sebagai berikut.
Public Class Form1
Dim fnt11Arial As Font = New Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point)
Dim fnt14Arial As Font = New Font("Arial", 14, FontStyle.Regular, GraphicsUnit.Point)
Dim fnt11Times As Font = New Font("Times New Roman", 11, FontStyle.Regular, GraphicsUnit.Point)
Dim fnt14Time As Font = New Font("Times New Roman", 14, FontStyle.Regular, GraphicsUnit.Point)
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("Text with Arial size 11 Font.", fnt11Arial, Brushes.Black, 100, 100)
e.Graphics.DrawString("Text with Arial size 14 Font.", fnt14Arial, Brushes.Black, 100, 123)
e.Graphics.DrawString("Text with Times size 11 Font.", fnt11Times, Brushes.Black, 100, 150)
e.Graphics.DrawString("Text with Times size 14 Font.", fnt14Time, Brushes.Black, 100, 173)
End Sub
End Class
Klo coba run dan print hasilnya seperti ini:
Sampai sini apa bisa diikuti? Klo ada pertanyaan langsung di komen di bawah ya...!
2 Comments
Makasih
yang tinggal ambil aja nilai string nya. Klo textbox ya txtName.Text semacam itu
grid ya ambil dari cell value nya.