Differenze tra le versioni di "Creare un file PDF con le risorse del Componente gb.cairo"
Da Gambas-it.org - Wikipedia.
(9 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 4: | Riga 4: | ||
Mostriamo di seguito un semplice esempio: | Mostriamo di seguito un semplice esempio: | ||
− | + | Public Sub Button1_Click() | |
− | + | ||
Dim pdf As CairoPdfSurface | Dim pdf As CairoPdfSurface | ||
Dim x, y As Integer | Dim x, y As Integer | ||
Dim im, im2 As Image | Dim im, im2 As Image | ||
− | |||
− | <FONT Color=gray>' ''Specifica la superficie grafica da creare per disegnarvi sopra, | + | <FONT Color=gray>' ''Specifica la superficie grafica da creare per disegnarvi sopra.'' |
− | + | ' ''Per la creazione di un file PDF, va passato al 1° argomento il percorso ove il file PDF sarà salvato. | |
+ | ' ''(il 2° e il 3° argomento sono espressi in millimetri).''</font> | ||
+ | pdf = New CairoPdfSurface("<FONT Color=darkgreen>''/percorso/del/file/PDF/da/creare''</font>", 210.0, 297.0) | ||
<FONT Color=gray>' ''Inizia il disegno sulla superficie impostata:''</font> | <FONT Color=gray>' ''Inizia il disegno sulla superficie impostata:''</font> | ||
− | + | Cairo.Begin(pdf) | |
<FONT Color=gray>' ''Disegna un arco:''</font> | <FONT Color=gray>' ''Disegna un arco:''</font> | ||
− | + | Cairo.LineWidth = 10.0 | |
− | + | Cairo.Arc(300, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0)) | |
− | + | Cairo.Source = Cairo.ColorPattern(Color.Blue) <FONT Color=gray>' ''Imposta il colore dell'elemento del disegno''</font> | |
− | + | Cairo.Stroke | |
<FONT Color=gray>' ''Disegna un arco colorato pieno:''</font> | <FONT Color=gray>' ''Disegna un arco colorato pieno:''</font> | ||
− | + | Cairo.LineWidth = 10.0 | |
− | + | Cairo.ArcNegative(400, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0)) | |
− | + | Cairo.Source = Cairo.ColorPattern(Color.Orange) | |
− | + | Cairo.Fill | |
<FONT Color=gray>' ''Scrive il testo:''</font> | <FONT Color=gray>' ''Scrive il testo:''</font> | ||
− | + | Cairo.Font.Size = 20 | |
− | + | Cairo.Font.Name = "URW Palladio L" | |
− | + | Cairo.Source = Cairo.ColorPattern(Color.Red) | |
− | + | Cairo.MoveTo(100, 200) | |
− | + | Cairo.DrawText("Drawtext") | |
− | + | Cairo.Fill | |
− | + | Cairo.Source = Cairo.ColorPattern(Color.Green) | |
− | + | Cairo.MoveTo(400, 300) | |
− | + | Cairo.Text("Text") | |
− | + | Cairo.Fill | |
<FONT Color=gray>' ''Disegna 10x10 quadrati pieni:''</font> | <FONT Color=gray>' ''Disegna 10x10 quadrati pieni:''</font> | ||
− | + | For x = 0 To 9 | |
− | + | For y = 0 To 9 | |
− | + | Cairo.Rectangle(200 + x * 10.0, 500 + y * 10.0, 5, 5) | |
− | + | Next | |
− | + | Next | |
− | + | Cairo.Source = Cairo.ColorPattern(Color.Violet) | |
− | + | Cairo.Fill | |
+ | |||
+ | <FONT Color=gray>' ''Vengono inserite due immagini caricate da due file SVG:''</font> | ||
+ | im = Image.Load("<FONT Color=darkgreen>''/usr/share/icons/breeze-dark/devices/64/battery.svg''</font>") | ||
+ | im2 = Image.Load("<FONT Color=darkgreen>''/usr/share/icons/breeze-dark/devices/64/media-optical-video.svg''</font>") | ||
+ | Cairo.Source = Cairo.ImagePattern(im, 350, 600) | ||
+ | Cairo.Paint <FONT Color=gray>' ''Disegna la prima immagine sulla superficie PDF''</font> | ||
+ | |||
+ | Cairo.Source = Cairo.ImagePattern(im2, 60, 400) | ||
+ | Cairo.Paint <FONT Color=gray>' ''Disegna la seconda immagine sulla superficie PDF''</font> | ||
− | <FONT Color=gray>' '' | + | <FONT Color=gray>' ''Termina il disegno:''</font> |
− | + | Cairo.End | |
− | |||
− | + | <FONT Color=gray>' ''Per generare il file PDF, va utilizzato il Metodo ".Finish()":''</font> | |
− | + | pdf.Finish() | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | End | |
− | In quest'altro esempio si creerà un file PDF ponendovi | + | ===Inserire in un file PDF un Oggetto grafico presente sul Form=== |
+ | In quest'altro esempio si creerà un file PDF ponendovi una "GridView", presente sul "Form", con il testo contenuto nelle sue celle. | ||
<BR>E' necessario attivare anche il Componente "gb.desktop.x11". | <BR>E' necessario attivare anche il Componente "gb.desktop.x11". | ||
− | + | Public Sub Form_Open() | |
Dim r, c As Byte | Dim r, c As Byte | ||
Riga 92: | Riga 93: | ||
Next | Next | ||
− | + | End | |
− | + | ||
+ | Public Sub Button1_Click() | ||
Dim dw As DesktopWindow | Dim dw As DesktopWindow | ||
Riga 108: | Riga 110: | ||
<FONT Color=gray>' ''Imposta la superficie di disegno del futuro file PDF.'' | <FONT Color=gray>' ''Imposta la superficie di disegno del futuro file PDF.'' | ||
' ''Il primo argomento imposta il percorso ove sarà salvato il futuro file PDF.'' | ' ''Il primo argomento imposta il percorso ove sarà salvato il futuro file PDF.'' | ||
− | ' ''Il secondo e il terzo argomento dimensionano in " | + | ' ''Il secondo e il terzo argomento dimensionano in "millimetri" il futuro file PDF.''</font> |
pdf = New CairoPdfSurface("/tmp/file.pdf", 210.0, 297.0) | pdf = New CairoPdfSurface("/tmp/file.pdf", 210.0, 297.0) | ||
Riga 118: | Riga 120: | ||
End With | End With | ||
− | + | pdf.Finish() | |
+ | |||
+ | End | ||
Versione attuale delle 19:22, 6 dic 2023
Il Componente di Gambas gb.cairo consente, fra l'altro, di creare file PDF disegnandovi figure, testo, immagini ed in generale ogni altro elemento di disegno.
E' necessario impostare innanzitutto la superficie grafica di tipo PDF, sulla quale disegnare; quindi iniziare il disegno con la Classe Cairo.
Mostriamo di seguito un semplice esempio:
Public Sub Button1_Click() Dim pdf As CairoPdfSurface Dim x, y As Integer Dim im, im2 As Image ' Specifica la superficie grafica da creare per disegnarvi sopra. ' Per la creazione di un file PDF, va passato al 1° argomento il percorso ove il file PDF sarà salvato. ' (il 2° e il 3° argomento sono espressi in millimetri). pdf = New CairoPdfSurface("/percorso/del/file/PDF/da/creare", 210.0, 297.0) ' Inizia il disegno sulla superficie impostata: Cairo.Begin(pdf) ' Disegna un arco: Cairo.LineWidth = 10.0 Cairo.Arc(300, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0)) Cairo.Source = Cairo.ColorPattern(Color.Blue) ' Imposta il colore dell'elemento del disegno Cairo.Stroke ' Disegna un arco colorato pieno: Cairo.LineWidth = 10.0 Cairo.ArcNegative(400, 300, 100.0, 45.0 * (Pi / 180.0), 180.0 * (Pi / 180.0)) Cairo.Source = Cairo.ColorPattern(Color.Orange) Cairo.Fill ' Scrive il testo: Cairo.Font.Size = 20 Cairo.Font.Name = "URW Palladio L" Cairo.Source = Cairo.ColorPattern(Color.Red) Cairo.MoveTo(100, 200) Cairo.DrawText("Drawtext") Cairo.Fill Cairo.Source = Cairo.ColorPattern(Color.Green) Cairo.MoveTo(400, 300) Cairo.Text("Text") Cairo.Fill ' Disegna 10x10 quadrati pieni: For x = 0 To 9 For y = 0 To 9 Cairo.Rectangle(200 + x * 10.0, 500 + y * 10.0, 5, 5) Next Next Cairo.Source = Cairo.ColorPattern(Color.Violet) Cairo.Fill ' Vengono inserite due immagini caricate da due file SVG: im = Image.Load("/usr/share/icons/breeze-dark/devices/64/battery.svg") im2 = Image.Load("/usr/share/icons/breeze-dark/devices/64/media-optical-video.svg") Cairo.Source = Cairo.ImagePattern(im, 350, 600) Cairo.Paint ' Disegna la prima immagine sulla superficie PDF Cairo.Source = Cairo.ImagePattern(im2, 60, 400) Cairo.Paint ' Disegna la seconda immagine sulla superficie PDF ' Termina il disegno: Cairo.End ' Per generare il file PDF, va utilizzato il Metodo ".Finish()": pdf.Finish() End
Inserire in un file PDF un Oggetto grafico presente sul Form
In quest'altro esempio si creerà un file PDF ponendovi una "GridView", presente sul "Form", con il testo contenuto nelle sue celle.
E' necessario attivare anche il Componente "gb.desktop.x11".
Public Sub Form_Open() Dim r, c As Byte With GridView1 .Rows.Count = 5 .Columns.Count = 5 End With For r = 0 To 4 For c = 0 To 4 GridView1[r, c].Text = "abcde" Next Next End Public Sub Button1_Click() Dim dw As DesktopWindow Dim pdf As CairoPdfSurface Dim im As Image ' Individua la "finestra" della "GridView" dal suo identificativo: With dw = New DesktopWindow(GridView1.Handle) ' Cattura l'immagine della "GridView": im = .GetScreenshot(True).Image End With ' Imposta la superficie di disegno del futuro file PDF. ' Il primo argomento imposta il percorso ove sarà salvato il futuro file PDF. ' Il secondo e il terzo argomento dimensionano in "millimetri" il futuro file PDF. pdf = New CairoPdfSurface("/tmp/file.pdf", 210.0, 297.0) With Cairo .Begin(pdf) .Source = Cairo.ImagePattern(im, 100, 100) .Paint .End End With pdf.Finish() End
Riferimenti
- Vedi anche questa pagina della Wiki: Creare_un_file_PDF_da_un_file_immagine_con_le_risorse_del_Componente_gb.cairo