Minggu, 26 Juli 2020

Vb.Net: Print Gambar Dengan Printdocument

print langsung ke printer (buat aplikasi POS/kasir), timbul pertanyaan klo print gambar gimana.

Di artikel itu sebenernya direct print nya masih yang simple print plain teks saja tanpa format detail.
Klo ada waktu Insya Allah Rani tambahkan buat direct printing dengan format dan gambar.
Untuk mencetak gambar, mungkin postingan ini bisa membantu mengetahui lebih permulaan bagaimana cara print image.

Dan buat kalian yang masih belum kenal apa itu PrintDocument, baca juga artikel ini ya!



Formula Dasar:

Bagaimana cara kerja nya? Berikut ini beberapa contoh untuk menjelaskannya. Contoh program pertama image / gambar akan diambil dari file yang disimpan di c:\logo.png.

Mari kita buat UI nya terlebih dahulun. Rani tambahkan sebuah  button dan PrintDocument ke dalam form seperti berikut:


Code:
Imports System.Drawing.Printing
Public Class Form1
    Private Sub Button1_Click(sender As Object, e As EventArgsHandles Button1.Click
        PrintDocument1.Print()
    End Sub

    Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) _
                Handles PrintDocument1.PrintPage
        Dim newImage As Image Image.FromFile("c:\logo.png")
        e.Graphics.DrawImage(newImage, 50, 50)
    End Sub
End Class

Coba Run dan klik tombol untuk mulai mencetak.


Hasilnya: (aku pakai pdf printer)


Kalau gambar diambil dari PictureBox gimana caranya? Ok kita coba tambahkan sebuah PictureBox  dan set image property-nya.


Kemudian arahan yang perlu diubah cuma image object nya saja yang mengambil dari property picturebox, seperti berikut:

Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) _
            Handles PrintDocument1.PrintPage
    e.Graphics.DrawImage(PictureBox1.Image, 50, 50)
End Sub

Hasilnya sama, karena saya memakai gambar yang serupa:



Secara default sintaks akan mencetak ukuran gambar bekerjsama, namun kita juga mampu mengaturnya secara manual dengan sintaks di bawah ini.

Kita coba mengontrol lebar (width) = 100 dan tinggi (height) = 50.

Private Sub PrintDocument1_PrintPage(sender As Object, e As PrintPageEventArgs) _
            Handles PrintDocument1.PrintPage
    e.Graphics.DrawImage(PictureBox1.Image, 50, 50, 100, 50)
End Sub

Hasil print akan mirip gambar di bawah.



Lebih lengkap bahasan tentang printing dengan PrintDocument ada di artikel di bawah ini ya.





Sumber http://rani-irsan.blogspot.com


EmoticonEmoticon