Creare un file PDF da un file immagine con le risorse del Componente gb.cairo

Da Gambas-it.org - Wikipedia.

In questa pagina vediamo come creare un file PDF partendo da un file immagine e usando le risorse del Componente gb.cairo.

Per l'esempio che segue sarà necessario attivare i Componenti gb.cairo, gb.image e gb.image.io, e si userà un file immagine jpg:

Public Sub Main()
 
 Dim pdf As CairoPdfSurface
 Dim im As Image
 
' Specifica in "millimetri" la superficie grafica da creare per disegnarvi sopra:
 pdf = New CairoPdfSurface("/percorso/del/file.pdf", 210.0, 297.0)
 
' Inizia il disegno sulla superficie impostata:
 Cairo.Begin(pdf)
 
' Viene caricata l'immagine JPG:
 im = Image.Load("/percorso/del/file/immagine.jpg")
 
' Non imposta alcuna modifica scalare all'immagine jpg:
 Cairo.Scale(1, 1)
 
' Imposta il margine superiore sinistro dell'immagine rispetto alla futura pagina PDF:
 Cairo.Source = Cairo.ImagePattern(im, 0, 0)
 
' Fissa l'immagine jpg sulla superficie PDF:
 Cairo.Paint
 
' Termina il disegno:
 Cairo.End
 pdf.Finish()
  
End


Creare un file PDF formato da due o più pagine

Per creare un file PDF formato da due o più pagine, è necessario utilizzare il Metodo "Cairo.ShowPage( )". Detto Metodo va inserito dopo il Metodo "Cairo.Paint", che fa riferimento alla pagina precedente creata.
Quindi, dopo il Metodo "Cairo.ShowPage( )" vanno inserite le righe di comando necessarie per caricare e fissare nella nuova pagina un'altra immagine.

Riprendendo così il precedente esempio, per creare un file PDF formato da 2 pagine avremo:

Public Sub Main()
 
 Dim pdf As CairoPdfSurface
 Dim im As Image
 
' Specifica in "millimetri" la superficie grafica da creare per disegnarvi sopra:
 pdf = New CairoPdfSurface("/percorso/del/file.pdf", 210.0, 297.0)
 
' Inizia il disegno sulla superficie impostata:
 Cairo.Begin(pdf)
 
' Viene caricata l'immagine JPG da inserire nella prima pagina del futuro file PDF:
 im = Image.Load("/percorso/del/file/immagine.jpg")
 
' Non imposta alcuna modifica scalare all'immagine jpg:
 Cairo.Scale(1, 1)
 
' Imposta il margine superiore sinistro dell'immagine rispetto alla futura prima pagina PDF:
 Cairo.Source = Cairo.ImagePattern(im, 0, 0)
 
' Fissa l'immagine jpg sulla superficie PDF:
 Cairo.Paint
 
' CREA UNA NUOVA PAGINA NEL FILE PDF:
   Cairo.ShowPage()
 
' Viene caricata l'immagine JPG da inserire nella seconda pagina del futuro file PDF:
 im = Image.Load("/percorso/del/file/immagine.jpg")
 
' Non imposta alcuna modifica scalare all'immagine jpg:
 Cairo.Scale(1, 1)
 
' Imposta il margine superiore sinistro dell'immagine rispetto alla seconda futura pagina PDF:
 Cairo.Source = Cairo.ImagePattern(im, 0, 0)
 
' Fissa l'immagine jpg sulla superficie PDF:
 Cairo.Paint
 
' Termina l'intera operazione:
 Cairo.End
 pdf.Finish()

End