Stampare il contenuto grafico di una PictureBox
Per stampare il contenuto grafico, ossia l'immagine, contenuto in una PictureBox, bisognerà far stampare dalla Classe Paint nell'evento _Draw( ) dell'oggetto Printer l'immagine contenuta dalla medesima PictureBox posta sul Form. A tal fine si rende utile il Metodo .DrawImage( ) della predetta Classe Paint. Poiché tale Metodo nel suo primo parametro richiede però un'Image, si avrà cura di disporre la conversione della Picture che rappresenta l'immagine contenuta dalla PictureBox in un'Image. Si provvederà altresì ad impostare i successivi 4 argomenti del Metodo in questione facendoli corrispondere esattamente agli analoghi valori della PictureBox.
Mostriamo un esempio pratico, nel quale verranno posti sul Form via codice una PictureBox ed un Button.
Private stampa As Printer
Private pb As PictureBox
Public Sub Form_Open()
Dim bt As Button
With Me
.Center
.W = 400
.H = 400
End With
With bt = New Button(Me) As "Tasto"
.X = 300
.Y = 300
.W = 60
.H = 30
.Text = "Stampa"
End With
stampa = New Printer As "Printer1"
With pb = New PictureBox(Me)
.X = 50
.Y = 50
.W = 96
.H = 96
.Picture = Picture["icon:/96/wizard"]
End With
End
Public Sub Tasto_Click()
With stampa
.Orientation = 0
.Paper = 2
.GrayScale = False
.Resolution = Desktop.Resolution
' Se vogliamo creare un file PDF:
.OutputFile = "/tmp/stampa.pdf"
.Print
End With
End
Public Sub Printer1_Draw()
With Paint
' Usiamo il Metodo "DrawImage() e convertiamo la "Picture" restituita dalla "PictureBox" in una "image":
.DrawImage(pb.Picture.Image, pb.X, pb.Y, pb.W, pb.H, 1.0, Null)
.End
End With
End
Stampa delle immagini contenute rispettivamente da due o più PictureBox
Qualora si debbano stampare le immagini contenute rispettivamente da due o più PictureBox poste sul Form, sarà necessario ovviamente servirsi di un ciclo posto all'interno della sintassi With Paint/End With, che richiami come variabili di tipo Oggetto tutte le PictureBox presenti sul Form.
Vediamo di seguito un semplice esempio, molto simile a quello del paragrafo precedente e che prevede la stampa del contenuto grafico di due PictureBox.
Private stampa As Printer
Public Sub Form_Open()
Dim pb1, pb2 As PictureBox
Dim bt As Button
With Me
.Center
.W = 400
.H = 400
End With
With bt = New Button(Me) As "Tasto"
.X = 300
.Y = 300
.W = 60
.H = 30
.Text = "Stampa"
End With
stampa = New Printer As "Printer1"
With pb1 = New PictureBox(Me)
.X = 50
.Y = 50
.W = 96
.H = 96
.Picture = Picture["icon:/96/wizard"]
End With
With pb2 = New PictureBox(Me)
.X = 200
.Y = 50
.W = 96
.H = 96
.Picture = Picture["icon:/96/insert-image"]
End With
End
Public Sub Tasto_Click()
With stampa
.Orientation = 0
.Paper = 2
.GrayScale = False
.Resolution = Desktop.Resolution
' Se vogliamo creare un file PDF:
.OutputFile = "/tmp/stampa.pdf"
.Print
End With
End
Public Sub Printer1_Draw()
Dim ob As Object
With Paint
For Each ob In FMain.Children
If Object.Type(ob) = "PictureBox" Then
.DrawImage(ob.Picture.Image, ob.X, ob.Y, ob.W, ob.H, 1.0, Null)
Endif
Next
.End
End With
End