Joomla TemplatesBest Web HostingBest Joomla Hosting
Menu Principale
Chi è online
 1 visitatore online
Siti amici











Home Articoli Programmazione Web Come stampare file di Microsoft Office con JavaScript

Come stampare file di Microsoft Office con JavaScript

Valutazione attuale: / 0
ScarsoOttimo 

Forse non ci avete mai pensato, oppure non vi è mai servito, ma è possibile da un normale pagina web accedere a file creati con la suite Microsoft Office, leggerne il contenuto, modificarli ed anche stamparli: a patto però di usare come browser Internet Explorer e avere la suite Office installata sul proprio computer. Il problema del browser nasce dal fatto che per accedere a file di Office occorre creare un oggetto ActiveX e gli ActiveX sono stati per anni il mezzo migliore per la diffusione di ogni genere di malware. Per questo, sono browser come Mozilla Firefox si sono categoricamente rifiutati di implementare tali funzionalità. Internet Explorer invece, le supporta ancora, ma è necessario abbassare al minimo il livello di sicurezza della area alla quale appartiene il sito, per questo è fortemente consigliabile aggiungere tale sito fra i "Siti affidabili" e poi abbassare al minimo il livello di sicurezza per quella area. Ad ogni modo, queste cose vengono utilizzate in ambienti protetti come intranet locali e quindi spesso l'abbassamento delle policy di sicurezza di IE non è una grande limitazione. Ad ogni modo, veniamo al dunque.
Nel codice HTML della vostra pagina, inserite un tag <script> usando come language "jscript" (e non javascript, perché la variante IE del javascript "potenziato" si chiama così):

<script language="jscript">

</script>

Visto che vogliamo stampare un file, sarà necessario creare una funzione che accetti come parametro il file selezionato dall'utente (con un <input type=file>) e inserire il codice necessario lì dentro. Il problema è che per stampare documenti di Word la procedura è diversa da quella per stampare documenti di tipo Excel, perciò sarà necessario creare una funzione per ogni tipo di documento: nel caso nostro, gestiamo documenti di tipo Word,Excel e PowerPoint.

Vediamo come stampare un documento di tipo Word: assumiamo che ci troviamo in una funzione che riceve come parametro file il nome del file da stampare. Come prima cosa si crea l'oggetto ActiveX dell'applicazione Word in questo modo:

var w = new ActiveXObject('Word.Application');

Poi occorre controllare se la creazione dell'oggetto sia realmente andata a buon fine, e quindi:

if (w == null) {

alert('Impossibile creare l\'oggetto Word.Application.');

return false;

}

Nel caso sia andato tutto bene, occorre nascondere la finestra di Word (perché stiamo a tutti gli effetti aprendo il programma):

w.Visible = false;

w.DisplayAlerts = false;

Ora siamo pronti per aprire il documento:

try {

doc = w.Documents.Open(file, true, true);

} catch (exp) {

alert('Impossibile aprire il file');

w.Quit();

return false;

}

 

L'atto dell'apertura è stato appositamente inserito in un blocco try/catch per gestire il caso in cui qualcosa vada storto. Ora siamo pronti a stampare il documento:

doc.PrintOut();

Con questa invocazione il documento viene stampato con la stampante predefinita, ma non possiamo ancora concludere la funzione perché ci mancano ancora alcuni dettagli:

//attende che finisca di stampare...

while (w.BackgroundPrintingStatus > 0);

E' infatti necessario creare un ciclo infinito che attenda che il documento venga completamente inviato alla coda di stampa, solo allora sarà possibile chiudere il documento e l'applicazione:

doc.Close();

w.Quit();

return true;



Ultimo aggiornamento (Domenica 15 Novembre 2009 10:14)

 
Sondaggi
Cosa ti aspetti da un sito dal nome ICT Experts?
 
Pubblicità