Generare un file PDF da una DrawingArea

Da Gambas-it.org - Wikipedia.

Per generare un file PDF dal disegno mostrato sulla superficie di una DrawingArea, si può fare riferimento generico al seguente esempio:

Private printer1 As Printer
Private DrawingArea1 As DrawingArea
Private im As Image


Public Sub Form_Open()

 With DrawingArea1 = New DrawingArea(Me) As "DrawingArea1"
   .X = 0
   .Y = 0
   .W = Me.W
   .H = Me.H
   .Background = Color.White
 End With

' Crea un'immagine delle medesime fattezze della "DrawingArea":
 im = New Image(DrawingArea1.W, DrawingArea1.H, DrawingArea1.Background, Image.Standard)

End


Public Sub DrawingArea1_Draw()   ' Nella medesima routine disegna sia sulla "DrawingArea" che nell'Oggetto "Image":

' Disegna sulla "DrawingArea":
 With Paint
   .Brush = .Color(Color.Orange)
   .Ellipse(100, 100, 100, 100, Rad(0), Rad(360), False)
   .Fill
' Disegna il medesimo contenuto anche nell'Oggetto "Image":
   .Begin(im)
   .Brush = .Color(Color.Orange)
   .Ellipse(100, 100, 100, 100, Rad(0), Rad(360), False)
   .Fill
   .End
 End With

 With printer1 = New Printer As "Printer1"
   .Paper = Printer.A4
   .GrayScale = False
   .Resolution = Desktop.Resolution
' Per creare un file PDF, imposta la Proprietà ".OutputFile":
   .OutputFile = "/tmp/file.pdf"
   .Print
 End With

End


Public Sub Printer1_Draw()

 With Paint
' Usa il Metodo "DrawImage():
   .DrawImage(im, 100, 100, im.W, im.H, 1.0, Null)
   .End
 End With

End

Riguardo all'argomento in oggetto si rinvia alla lettura anche delle seguenti pagine della wiki: