Stampare un file PDF: differenze tra le versioni
Vai alla navigazione
Vai alla ricerca
Nessun oggetto della modifica |
Nessun oggetto della modifica |
||
| Riga 1: | Riga 1: | ||
Mostreremo di seguito due opzioni per stampare un file PDF. | Mostreremo di seguito due opzioni per stampare un file PDF. | ||
| Riga 89: | Riga 84: | ||
'''Public''' Sub Printer1_Begin() | '''Public''' Sub Printer1_Begin() | ||
<FONT color=gray>' ''Dice all'oggetto ''Printer'' di stampare un numero di pagine pari al numero | <FONT color=gray>' ''Dice all'oggetto ''Printer'' di stampare un numero di pagine pari al numero totale delle pagine di cui è composto il documento pdf:''</font> | ||
Printer1.Count = p.Count | Printer1.Count = p.Count | ||
Versione delle 19:55, 24 giu 2020
Mostreremo di seguito due opzioni per stampare un file PDF.
Stampa con le risorse del Componente gb.poppler
Per stampare in modo elementare un file PDF con le sole funzioni di Gambas, possiamo utilizzare la seguente semplice modalità, per la quale sarà necessario:
- attivare il componente gb.poppler;
- inserire sul Form l'oggetto speciale Printer;
- inserire sul Form un Button.
Private im As Image
Public Sub Form_Open()
Dim p As PdfDocument
' Carica il file PDF del documento da stampare:
p = New PdfDocument("/percorso/del/file.pdf")
' Ottiene un'immagine della prima pagina (indice zero) del documento pdf caricato:
im = p[0].Render(0, 0, p[0].W, p[0].H, 0, p.Resolution)
End
Public Sub Button1_Click()
With Printer1
.Configure ' Opzionale - apre la finestra di dialogo se si vuole impostare la stampante
.Orientation = Printer.Portrait ' Opzionale: imposta la modalità di stampa "Verticale" (oppure "Orizzontale").
.Paper = Printer.A4 ' Opzionale - imposta il tipo di carta
.Resolution = Desktop.Resolution ' Opzionale: modificando il valore di questa proprietà si modificano le dimensioni di stampa
.Print ' Effettua la stampa su foglio
End With
End
Public Sub Printer1_Draw() ' Questo evento è richiamato per ogni pagina da stampare.
' Queste sono le informazioni di ciò che si andrà a stampare:
With Paint
.DrawImage(im, 0, 0, im.W, im.H)
.Fill
End With
End
Stampare un documento PDF formato da due o più pagine
Se il documento PDF è composto da due o più pagine potremo adottare il seguente codice:
Private p As PdfDocument
Private iimm As Image[]
Private j As Short
Public Sub Form_Open()
Dim c As Short
' Carica il file PDF del documento da stampare:
p = New PdfDocument("/percorso/del/file.pdf")
iimm = New Image[]
For c = 0 To p.Max
iimm.Push(p[c].Render(0, 0, p[c].W, p[c].H, 0, p.Resolution))
Next
End
Public Sub Button1_Click()
With Printer1
.Configure ' Opzionale - apre la finestra di dialogo se si vuole impostare la stampante
.Orientation = Printer.Portrait ' Opzionale: imposta la modalità di stampa "Verticale" (oppure "Orizzontale").
.Paper = Printer.A4 ' Opzionale - imposta il tipo di carta
.Resolution = Desktop.Resolution ' Opzionale: modificando il valore di questa proprietà si modificano le dimensioni di stampa
.Print ' Effettua la stampa su foglio
End With
End
Public Sub Printer1_Begin()
' Dice all'oggetto Printer di stampare un numero di pagine pari al numero totale delle pagine di cui è composto il documento pdf:
Printer1.Count = p.Count
End
Public Sub Printer1_Draw()
' Quindi stampiamo ciascuna pagina specificando le sue dimensioni e coordinate:
With Paint
.DrawImage(iimm[j], 0, 0, iimm[j].W, iimm[j].H)
.Fill
End With
Inc j
End
Utilizzare il codice HTML
Quest'altra modalità prevede una procedura mediata per giungere alla stampa del file PDF. Infatti il codice HTML aprirà il file PDF all'interno del programma predefinito di lettura dei file PDF. Da questo programma, poi, si procederà alla stampa.
Faremo uso di un MessageBox per contenere il codice HTML:
Public Sub Button1_Click()
Message.Info("<A href=/percorso/del/file.pdf>Apri file PDF")
End