Scopo
A volte può essere utile stampare un documento direttamente sulla stampante senza prima doverlo visualizzare a video. Questa semplice caratteristica, che è presente nella maggior parte delle applicazioni client/server, è del tutto assente nel panorama delle applicazioni web a causa del fatto che il browser non ha la possibilità di comandare la stampante locale.
La procedura PrintPDF, superando i limiti descritti sopra, consente di stampare direttamente sulla stampante locale dell'utente uno o più file PDF presenti sul server. Questi file possono essere PDF qualunque oppure possono essere prodotti tramite la stampa di un book.
Questa procedura può essere usata anche per stampare più file PDF in risposta allo stesso comando e consente, se desiderato, di ottenere una cancellazione quasi immediata dei file sul server per garantire una maggiore privacy.
Sintassi
Argomenti
PDF File | È una stringa contenente il percorso del file PDF da stampare relativo all'applicazione web. Se ad esempio il file si chiama REPORT.PDF ed è contenuto nella sottodirectory TEMP dell'applicazione, allora questo parametro deve valere TEMP/REPORT.PDF. |
Messaggio | E' un parametro opzionale di tipo stringa che contiene il messaggio da mostrare a video durante le operazioni di stampa, ad esempio: "Stampa delle buste paga in corso...". Se viene lasciato vuoto apparirà un messaggio di default. |
Pagina Iniziale | E' un parametro opzionale di tipo intero. Se impostato ad un valore maggiore di zero, rappresenta il numero della prima pagina che verrà stampata. Il valore di default è zero: stampa di tutto il documento. |
Pagina Finale | E' un parametro opzionale di tipo intero. Se impostato ad un valore maggiore di zero, rappresenta il numero dell'ultiima pagina che verrà stampata. Il valore di default è zero: stampa di tutto il documento. |
Fit To Paper | E' un parametro opzionale booleano con valore di default True. Indica ad Acrobat Reader di adattare la stampa alle dimensioni della carta della stampante. |
Cancellazione Automatica | E' un parametro opzionale booleano con valore di default False. Se impostato a True il file PDF verrà cancellato prima possibile, non appena esso è arrivato il browser. Questo può essere utile per aumentare la privacy. |
Print Setup Dialog | E' un parametro opzionale booleano con valore di default False. Se impostato a True, prima di iniziare la stampa apparirà la finestra dei parametri con cui l'utente può modificare la stampante da utilizzare e le altre proprietà di stampa. |
Esempio di codice
// Stampo direttamente un file
// ***************************
public void Prodotti.StampaDIRETTA()
{
// Chiedo di creare un PDF
ProdottiBook.PrintDestination := PDF
//
// Eseguo la stampa del PDF
ProdottiBook.Print(ZERO, C-1)
//
// Mando al browser la richiesta di stampare il PDF.
// Se si tiene premuto SHIFT, apparirà la finestra di scelta della stampante
EsempiAM.PrintPDF(ProdottiBook.WebFileName(), MSG Stampa Prodotti, ZERO, ZERO, True,
True, ShiftKey)
}
- La procedura PrintPDF richiede che il PC dell'utente possa visualizzare i PDF, quindi che ci sia installato Acrobat Reader o Adobe Acrobat oltre che il browser.
- La procedura è stata testata sulle versioni 5, 6, 7 e 8 dei suddetti programmi Adobe. Se si utilizza Acrobat Reader versione 6, 7 o 8 la prima volta verrà chiesta all'utente una conferma prima di inviare il file alla stampante.
- Attenzione: Sono stati riportati dei malfunzionamenti dell'Acrobat Reader in alcune versioni di aggiornamento che rendono impossibile utilizzare la stampa diretta. Installando l'ultima versione di Acrobat Reader i problemi si risolvono. E' certo che la versione 7.0.9 e la versione 8.0.0 funzionano correttamente.
- Utilizzando la versione 8.0.0 durante la stampa diretta appare la finestra di Adobe Reader vuota, una volta messa in secondo piano essa rimane in secondo piano.
- Se si è chiesta la cancellazione automatica e viene chiuso il browser durante la stampa del PDF, il file sul server sopravvive ancora qualche minuto fino allo scadere della sessione.
- Se non si utilizza la finestra dei parametri di stampa, il file verrà stampato sull'ultima stampante utilizzata da Acrobat Reader. Al momento della prima stampa dall'avvio del PC, la stampante sarà quella predefinita.
- Chiamando più volte la procedura PrintPDF verranno mandati in stampa tutti i file indicati. Fra una stampa e l'altra il server viene chiamato per consentire l'eventuale cancellazione dei file. Se l'applicazione ha dei timer attivi, essi saranno attivi anche durante le operazioni di stampa.
- Il messaggio viene passato al browser effettuando l'encoding di tutti i caratteri con codice ASCII > 126. In questo modo si conserva la possibilità di introdurre tag HTML nel messaggio ma non ci si deve preoccupare della corretta visualizzazione delle lingue orientali.
Ultima modifica: 23/03/2021 / Validità: da 6.5.2680