Differenze tra le versioni di "Stampare il contenuto grafico di una PictureBox"
Riga 1: | Riga 1: | ||
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'<I>Image</i>, si avrà cura di disporre la conversione della ''Picture'' che rappresenta l'immagine contenuta dalla ''PictureBox'' in un'<I>Image</i>. Si provvederà altresì ad impostare i successivi 4 argomenti del Metodo in questione facendoli corrispondere esattamente agli analoghi valori della ''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'<I>Image</i>, si avrà cura di disporre la conversione della ''Picture'' che rappresenta l'immagine contenuta dalla ''PictureBox'' in un'<I>Image</i>. 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''. | Mostriamo un esempio pratico, nel quale verranno posti sul ''Form'' via codice una ''PictureBox'' ed un ''Button''. | ||
Riga 41: | Riga 40: | ||
With stampa | With stampa | ||
− | .Orientation = | + | .Orientation = Printer.Portrait |
− | .Paper = | + | .Paper = Printer.A4 |
.GrayScale = False | .GrayScale = False | ||
.Resolution = Desktop.Resolution | .Resolution = Desktop.Resolution | ||
Riga 56: | Riga 55: | ||
With Paint | With Paint | ||
− | <FONT Color=gray>' ''Usiamo il Metodo "DrawImage() | + | <FONT Color=gray>' ''Usiamo il Metodo "DrawImage() per disegnare una "image":''</font> |
− | .DrawImage(pb | + | .DrawImage(pb.Image, pb.X, pb.Y, pb.W, pb.H, 1.0, Null) |
.End | .End | ||
End With | End With | ||
− | + | ||
'''End''' | '''End''' | ||
Riga 66: | Riga 65: | ||
===Stampa delle immagini contenute rispettivamente da due o più ''PictureBox''=== | ===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''. | 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''. | Vediamo di seguito un semplice esempio, molto simile a quello del paragrafo precedente e che prevede la stampa del contenuto grafico di due ''PictureBox''. | ||
Riga 76: | Riga 74: | ||
Dim pb1, pb2 As PictureBox | Dim pb1, pb2 As PictureBox | ||
Dim bt As Button | 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''' | '''End''' | ||
− | |||
'''Public''' Sub Tasto_Click() | '''Public''' Sub Tasto_Click() | ||
With stampa | With stampa | ||
− | .Orientation = | + | .Orientation = Printer.Portrait |
− | .Paper = | + | .Paper = Printer.A4 |
.GrayScale = False | .GrayScale = False | ||
.Resolution = Desktop.Resolution | .Resolution = Desktop.Resolution | ||
Riga 125: | Riga 122: | ||
'''End''' | '''End''' | ||
− | + | ||
− | |||
'''Public''' Sub Printer1_Draw() | '''Public''' Sub Printer1_Draw() | ||
Dim ob As Object | 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''' | '''End''' |
Versione delle 21:29, 24 dic 2021
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 = Printer.Portrait .Paper = Printer.A4 .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() per disegnare una "image": .DrawImage(pb.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 = Printer.Portrait .Paper = Printer.A4 .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