Differenze tra le versioni di "Stampare un file PDF"
Da Gambas-it.org - Wikipedia.
(14 versioni intermedie di uno stesso utente non sono mostrate) | |||
Riga 1: | Riga 1: | ||
− | Mostreremo di seguito due opzioni per stampare un file PDF. | + | Mostreremo di seguito due opzioni per stampare un file PDF (ossia il contenuto grafico/testuale di un file PDF). |
− | + | ==Stampa con le risorse del Componente gb.poppler== | |
− | ==Stampa con le | ||
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: | 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. | + | * attivare il componente ''gb.poppler''; |
* inserire sul ''Form'' l'oggetto speciale ''Printer''; | * inserire sul ''Form'' l'oggetto speciale ''Printer''; | ||
− | * inserire sul ''Form'' un ''Button'' | + | * inserire sul ''Form'' un ''Button''. |
− | + | Private im As Image | |
− | + | ||
− | |||
− | |||
− | + | Public Sub Form_Open() | |
− | |||
− | + | Dim p As PdfDocument | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | <FONT color=gray>' ''Carica il file PDF del documento da stampare:''</font> | |
+ | p = New PdfDocument("<FONT color=darkgreen>''/percorso/del/file.pdf''</font>") | ||
− | ''' | + | <FONT color=gray>' ''Ottiene un'immagine della prima pagina (indice zero) del documento pdf caricato:''</font> |
+ | im = p[0].Render(0, 0, p[0].W, p[0].H, 0, p.Resolution) | ||
+ | |||
+ | End | ||
− | + | Public Sub Button1_Click() | |
− | |||
− | |||
− | + | With Printer1 | |
+ | .Configure <FONT color=gray>' ''Opzionale - apre la finestra di dialogo se si vuole impostare la stampante''</font> | ||
+ | .Orientation = Printer.Portrait <FONT color=gray>' ''Opzionale: imposta la modalità di stampa "Verticale" (oppure "Orizzontale").''</font> | ||
+ | .Paper = Printer.A4 <FONT color=gray>' ''Opzionale - imposta il tipo di carta''</font> | ||
+ | .Resolution = Desktop.Resolution <FONT color=gray>' ''Opzionale: modificando il valore di questa proprietà si modificano le dimensioni di stampa''</font> | ||
+ | .Print <FONT color=gray>' ''Effettua la stampa su foglio''</font> | ||
+ | End With | ||
− | + | End | |
− | ''' | + | Public Sub Printer1_Draw() <FONT color=gray>' ''Questo evento è richiamato per ogni pagina da stampare.''</font> |
− | + | <FONT color=gray>' ''Queste sono le informazioni di ciò che si andrà a stampare:''</font> | |
− | + | 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 | ||
− | ''' | + | <FONT color=gray>' ''Carica il file PDF del documento da stampare:''</font> |
+ | p = New PdfDocument("<FONT color=darkgreen>''/percorso/del/file.pdf''</font>") | ||
+ | |||
+ | 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 <FONT color=gray>' ''Opzionale - apre la finestra di dialogo se si vuole impostare la stampante''</font> | ||
+ | .Orientation = Printer.Portrait <FONT color=gray>' ''Opzionale: imposta la modalità di stampa "Verticale" (oppure "Orizzontale").''</font> | ||
+ | .Paper = Printer.A4 <FONT color=gray>' ''Opzionale - imposta il tipo di carta''</font> | ||
+ | .Resolution = Desktop.Resolution <FONT color=gray>' ''Opzionale: modificando il valore di questa proprietà si modificano le dimensioni di stampa''</font> | ||
+ | .Print <FONT color=gray>' ''Effettua la stampa su foglio''</font> | ||
+ | End With | ||
+ | |||
+ | End | ||
+ | |||
+ | |||
+ | Public Sub Printer1_Begin() | ||
− | <FONT color= | + | <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 | |
− | |||
− | |||
− | |||
− | + | End | |
− | + | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | Public Sub Printer1_Draw() | |
− | ''' | + | <FONT color=gray>' ''Quindi stampiamo ciascuna pagina specificando le sue dimensioni e coordinate:''</font> |
+ | With Paint | ||
+ | .DrawImage(iimm[j], 0, 0, iimm[j].W, iimm[j].H) | ||
+ | .Fill | ||
+ | End With | ||
+ | |||
+ | Inc j | ||
+ | |||
+ | End |
Versione attuale delle 08:42, 16 set 2024
Mostreremo di seguito due opzioni per stampare un file PDF (ossia il contenuto grafico/testuale di 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