Differenze tra le versioni di "Stampare il contenuto grafico di una PictureBox"

Da Gambas-it.org - Wikipedia.
 
(5 versioni intermedie di uno stesso utente non sono mostrate)
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 7: Riga 6:
 
   
 
   
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
 
   Dim bt As Button
 
   Dim bt As Button
 
    
 
    
  With Me
+
  With Me
    .Center
+
    .Center
    .W = 400
+
    .W = 400
    .H = 400
+
    .H = 400
  End With
+
  End With
 
    
 
    
  With bt = New Button(Me) As "Tasto"
+
  With bt = New Button(Me) As "Tasto"
    .X = 300
+
    .X = 300
    .Y = 300
+
    .Y = 300
    .W = 60
+
    .W = 60
    .H = 30
+
    .H = 30
    .Text = "Stampa"
+
    .Text = "Stampa"
  End With
+
  End With
 
    
 
    
  stampa = New Printer As "Printer1"
+
  stampa = New Printer As "Printer1"
 
    
 
    
  With pb = New PictureBox(Me)
+
  With pb = New PictureBox(Me)
    .X = 50
+
    .X = 50
    .Y = 50
+
    .Y = 50
    .W = 96
+
    .W = 96
    .H = 96
+
    .H = 96
    .Picture = Picture["icon:/96/wizard"]
+
    .Picture = Picture["icon:/96/wizard"]
  End With
+
  End With
 
    
 
    
  '''End'''
+
  End
 
 
   
 
   
  '''Public''' Sub Tasto_Click()
+
  Public Sub Tasto_Click()
 
    
 
    
 
   With stampa
 
   With stampa
     .Orientation = 0
+
     .Orientation = Printer.Portrait
     .Paper = 2
+
     .Paper = Printer.A4
 
     .GrayScale = False
 
     .GrayScale = False
 
     .Resolution = Desktop.Resolution
 
     .Resolution = Desktop.Resolution
  <FONT Color=gray>' ''Se vogliamo creare un file PDF:''</font>
+
  <FONT Color=gray>' ''Se vogliamo creare un file PDF, impostiamo la Proprietà ".OutputFile":''
     .OutputFile = "/tmp/stampa.pdf"
+
     '''.OutputFile''' = "/tmp/stampa.pdf"</font>
 
     .Print
 
     .Print
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
 
   
 
   
 +
Public Sub Printer1_Draw()
 +
 
 +
  With Paint
 +
<FONT Color=gray>' ''Usiamo il Metodo "DrawImage() e convertiamo la "Picture" restituita dalla "PictureBox" in una "Image":''</font>
 +
    .DrawImage(pb.Picture.Image, pb.X, pb.Y, pb.W, pb.H, 1.0, Null)
 +
    .End
 +
  End With
 
   
 
   
  '''Public''' Sub Printer1_Draw()
+
  End
 
 
  With Paint
 
<FONT Color=gray>' ''Usiamo il Metodo "DrawImage() e convertiamo la "Picture" restituita dalla "PictureBox" in una "image":''</font>
 
    .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''===
 
===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 72: Riga 68:
 
    
 
    
 
   
 
   
  '''Public''' Sub Form_Open()
+
  Public Sub Form_Open()
 
    
 
    
 
   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 Me
+
  With pb1 = New PictureBox(Me)
    .Center
+
    .X = 50
    .W = 400
+
    .Y = 50
    .H = 400
+
    .W = 96
  End With
+
    .H = 96
 
+
    .Picture = Picture["icon:/96/wizard"]
  With bt = New Button(Me) As "Tasto"
+
  End With
    .X = 300
+
 
    .Y = 300
+
  With pb2 = New PictureBox(Me)
    .W = 60
+
    .X = 200
    .H = 30
+
    .Y = 50
    .Text = "Stampa"
+
    .W = 96
  End With
+
    .H = 96
 
+
    .Picture = Picture["icon:/96/insert-image"]
  stampa = New Printer As "Printer1"
+
  End With
 
+
 
  With pb1 = New PictureBox(Me)
+
  End
    .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()
'''Public''' Sub Tasto_Click()
 
 
    
 
    
 
   With stampa
 
   With stampa
     .Orientation = 0
+
     .Orientation = Printer.Portrait
     .Paper = 2
+
     .Paper = Printer.A4
 
     .GrayScale = False
 
     .GrayScale = False
 
     .Resolution = Desktop.Resolution
 
     .Resolution = Desktop.Resolution
  <FONT Color=gray>' ''Se vogliamo creare un file PDF:''</font>
+
  <FONT Color=gray>' ''Se vogliamo creare un file PDF, impostiamo la Proprietà ".OutputFile":''
     .OutputFile = "/tmp/stampa.pdf"
+
     '''.OutputFile''' = "/tmp/stampa.pdf"</font>
 
     .Print
 
     .Print
 
   End With
 
   End With
 
    
 
    
  '''End'''
+
  End
+
 
+
  Public Sub Printer1_Draw()
  '''Public''' Sub Printer1_Draw()
 
 
    
 
    
 
   Dim ob As Object
 
   Dim ob As Object
 
    
 
    
  With Paint
+
  With Paint
    For Each ob In FMain.Children
+
    For Each ob In FMain.Children
      If Object.Type(ob) = "PictureBox" Then
+
      If Object.Type(ob) = "PictureBox" Then
        .DrawImage(ob.Picture.Image, ob.X, ob.Y, ob.W, ob.H, 1.0, Null)
+
        .DrawImage(ob.Picture.Image, ob.X, ob.Y, ob.W, ob.H, 1.0, Null)
      Endif
+
      Endif
    Next
+
    Next
    .End
+
    .End
  End With
+
  End With
 
+
 
  '''End'''
+
  End

Versione attuale delle 14:26, 13 giu 2023

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, impostiamo la Proprietà ".OutputFile":
   .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 = Printer.Portrait
   .Paper = Printer.A4
   .GrayScale = False
   .Resolution = Desktop.Resolution
' Se vogliamo creare un file PDF, impostiamo la Proprietà ".OutputFile":
   .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