2011-10-25 13 views
8

Eventuali duplicati:
Printing to a specific printer from a web appPosso avere JavaScript selezionare la stampante da usare?

Una delle nostre applicazioni intranet ha bisogno di stampare su una stampante non predefinita. Ovviamente le persone dimenticano regolarmente di selezionare la stampante corretta.

Sono consapevole del fatto che non è possibile farlo normalmente tramite JavaScript ma dato che il browser è IE9 e posso aggiungere la webapp alla zona attendibile (e giocherellare con le impostazioni di sicurezza a volontà), c'è qualche modo scrivere JavaScript che selezionerà automaticamente la stampante corretta? Forse usando alcuni ActiveX o altre cose specifiche di IE.

+0

Se si dispone di questo tipo di controllo ed è interna, allora forse un controllo ActiveX potrebbe funzionare. –

risposta

6

No, il modello di oggetti Javascript include un metodo window.print() che può attivare la finestra di dialogo di stampa standard di un browser Web, ma ciò vale per quanto riguarda la funzionalità. Non sarebbe appropriato o sicuro che il codice Javascript possa controllare le stampanti collegate a un computer, cercare le proprietà della stampante o configurarne arbitrariamente le impostazioni.

Suggerisco di aggiungere un pop prima della stampa in cui si ricorda all'utente di selezionare la stampante appropriata.

+0

Apparentemente non ero chiaro, sono consapevole che questo non è possibile "in generale", ma spero che possa esserci una soluzione specifica IE se alcune politiche di sicurezza sono rilassate (questa è un'app * intranet * dopo tutti) – Kris

+1

Sei stato abbastanza chiaro, la risposta è sempre la stessa, non c'è modo. – isJustMe

+1

In realtà, la soluzione del contam funziona, anche se è troppo costoso per i miei scopi. – Kris

3

Se il browser è basato IE è possibile utilizzare questo ActiveX da meadroid:

http://www.meadroid.com/scriptx/index.asp

ho usato in passato e permette di controllare gli attributi della stampante.

Ecco un esempio dalla documentazione mmeadroid:

<script> 
function printWindow() { 
    factory.printing.SetMarginMeasure(2); // set inches 
    factory.printing.header = "This is MeadCo"; 
    factory.printing.footer = "Printing by ScriptX"; 
    factory.printing.portrait = false; 
    factory.printing.leftMargin = 1.0; 
    factory.printing.topMargin = 1.0; 
    factory.printing.rightMargin = 1.0; 
    factory.printing.bottomMargin = 1.0; 
    factory.printing.copies = 1; 
    factory.printing.printBackground = true; 
    factory.printing.Print(false); 
    factory.printing.WaitForSpoolingComplete(); 
    // navigate or close browser here // 
} 
</script> 
+0

Sembra che funzioni, ma solo con la versione a pagamento. – Kris

+0

Sì :-) ... non è gratuito ma per un progetto commerciale è un buon investimento –

+2

Se si passa a firefox ecco un'alternativa, un addon per firefox simile a meadco scriptx ma gratuito: https://addons.mozilla.org/it/firefox/addon/js-print-setup/ –

Problemi correlati