Stampa direttamente sulla stampante con JavaScript

Una query che si presenta molto nei vari forum Javascript chiede come inviare la pagina direttamente alla stampante senza prima visualizzare il file finestra di dialogo di stampa.

Piuttosto che dirtelo non si può fare forse una spiegazione del perché tale opzione non è possibile sarebbe più utile.

Quale finestra di dialogo di stampa viene visualizzata quando si preme il tasto pulsante di stampa nel loro browser o Javascript window.print () l'esecuzione del metodo dipende dal sistema operativo e dalle stampanti installate sul computer.

Poiché la maggior parte delle persone esegue Windows sul proprio computer, descriviamo innanzitutto come funziona l'impostazione di stampa su quel sistema operativo. I sistemi operativi * nix e Mac differiscono leggermente nei dettagli, ma nel complesso sono configurati in modo simile.

Finestra di dialogo Stampa

Ci sono due parti nella finestra di dialogo di stampa su Windows. Il primo di questi fa parte dell'API di Windows (Application Programming Interface). L'API è un insieme di parti di codice comuni che si trovano nelle varie DLL (

instagram viewer
Libreria di collegamento dinamico) file che fanno parte di Windows sistema operativo. Qualsiasi programma Windows può (e dovrebbe) chiamare l'API per eseguire funzioni comuni come la visualizzazione della finestra di dialogo Stampa in modo che lo faccia funziona allo stesso modo in tutti i programmi e non ha opzioni diverse in luoghi diversi come faceva l'opzione di stampa nel programma DOS giorni. L'API Print Dialog fornisce anche un'interfaccia comune che consente a tutti i programmi di accedere piuttosto allo stesso set di driver di stampa rispetto ai produttori di stampanti che devono creare software driver per la propria stampante per ogni singolo programma che si desidera utilizzare esso.

I driver della stampante sono l'altra metà della finestra di dialogo di stampa. Esistono diverse lingue che diverse stampanti comprendono di utilizzare per controllare la modalità di stampa della pagina (ad es. PCL5 e Postscript). Il driver della stampante indica all'API di stampa come tradurre il formato di stampa interno standard che il sistema operativo comprende nel linguaggio di markup personalizzato che la stampante specifica capisce. Inoltre regola le opzioni visualizzate nella finestra di dialogo Stampa per riflettere le opzioni offerte dalla stampante specifica.

Funzionamento della stampante

Un singolo computer potrebbe non avere stampanti installate, potrebbe avere una stampante locale, potrebbe avere accesso a più stampanti su una rete, può anche essere configurato per la stampa in PDF o stampa preformattata file. Laddove è definita più di una "stampante", una di esse è designata come stampante predefinita, il che significa che è quella che visualizza i suoi dettagli nella finestra di dialogo di stampa quando appare per la prima volta.

Il sistema operativo tiene traccia della stampante predefinita e identifica quella stampante nei vari programmi sul computer. Ciò consente ai programmi di passare un parametro aggiuntivo all'API di stampa che indica di stampare direttamente sulla stampante predefinita senza visualizzare prima la finestra di dialogo di stampa. Molti programmi hanno due diverse opzioni di stampa: una voce di menu che visualizza la finestra di dialogo di stampa e un pulsante di stampa rapida della barra degli strumenti che invia direttamente alla stampante predefinita.

Quando hai una pagina web su Internet che i tuoi visitatori stanno per stampare, non hai quasi nessuna informazione su quali stampanti hanno. La maggior parte delle stampanti in tutto il mondo sono configurate per stampare su carta A4 ma non è possibile garantire che la stampante sia impostata su quel valore predefinito. Un paese nordamericano utilizza un formato carta non standard più corto e più largo dell'A4. La maggior parte delle stampanti sono configurate per stampare in modalità verticale (dove la direzione più stretta è la larghezza ma alcune possono essere impostate sul paesaggio dove la dimensione più lunga è la larghezza. Naturalmente, ogni stampante ha anche margini predefiniti diversi nella parte superiore, inferiore e laterale della pagina prima ancora che i proprietari entrino e cambino tutte le impostazioni per ottenere la stampante nel modo in cui sono volere.

Dati tutti questi fattori, non hai modo di sapere se la stampante predefinita con la sua configurazione predefinita stamperà il tuo web pagina su A3 con margini trascurabili o su A5 con margini enormi (lasciando poco più di un'area di dimensioni di un francobollo nel mezzo del pagina). Probabilmente puoi presumere che la maggior parte avrà un'area di stampa sulla pagina di circa 16 cm x 25 cm (più o meno l'80%).

Bisogni di stampa

Poiché le stampanti variano molto tra i tuoi potenziali visitatori (qualcuno ha menzionato stampanti laser, stampanti a getto d'inchiostro, a colori o in bianco e nero solo, qualità della foto, modalità bozza e molto altro) non hai modo di dire cosa dovranno fare per stampare la tua pagina in modo ragionevole formato. forse hanno una stampante separata o un secondo driver per la stessa stampante che fornisce impostazioni totalmente diverse specificamente per le pagine Web.

Successivamente, arriva la questione di ciò che potrebbero voler stampare. Vogliono l'intera pagina o hanno selezionato solo una parte della pagina che vogliono stampare? Se il tuo sito utilizza i frame, vogliono stampare tutti i frame nel modo in cui appaiono sulla pagina, vogliono stampare ciascun frame separatamente o vogliono solo stampare un frame specifico?

La necessità di rispondere a tutte queste domande rende quasi indispensabile che la finestra di dialogo di stampa appaia ogni volta che vogliono stampare qualcosa in modo che possano assicurarsi che le impostazioni siano tutte corrette prima che colpiscano la stampa pulsante. La maggior parte dei browser offre anche la possibilità di aggiungere un pulsante di "stampa veloce" a una delle barre degli strumenti del browser per consentire la pagina da stampare sulla stampante predefinita utilizzando le impostazioni predefinite del browser su ciò che deve essere stampato e Come.

Javascript

I browser non rendono questa moltitudine di impostazioni del browser e della stampante disponibili per Javascript. Javascript si occupa principalmente di modificare la corrente pagina web e quindi i browser web forniscono informazioni minime sul browser stesso e quasi nessuna informazione sul sistema operativo disponibile per Javascript perché Javascript non ha bisogno di sapere quelle cose per eseguire quelle cose che Javascript è destinato a fare.

La sicurezza di base dice che se qualcosa come Javascript non ha bisogno di sapere sul sistema operativo e configurazione del browser al fine di manipolare la pagina Web, quindi non dovrebbe essere fornita informazione. Non è come Javascript dovrebbe essere in grado di modificare le impostazioni della stampante in valori appropriati per stampare la pagina corrente perché non è ciò che serve a Javascript - questo è il lavoro di stampa dialogo. I browser quindi rendono disponibile a Javascript solo le cose che Javascript ha bisogno di sapere come la dimensione dello schermo, il spazio disponibile nella finestra del browser per visualizzare la pagina e cose simili che aiutano Javascript a capire come è disposta la pagina. La pagina Web attuale è l'unica e sola preoccupazione di Javascript.

intranet

Le intranet sono ovviamente una questione completamente diversa. Con una intranet, sai che tutti accedere alla pagina sta utilizzando un browser specifico (di solito una versione recente di Internet Explorer) e ha una risoluzione dello schermo specifica e l'accesso a stampanti specifiche. Ciò significa che ha senso su una rete Intranet poter stampare direttamente sulla stampante senza visualizzare la finestra di dialogo di stampa perché la persona che scrive la pagina Web sa quale stampante sarà stampato su.

Il sostituto di Internet Explorer per Javascript (chiamato JScript) ha quindi leggermente più informazioni sul browser e sul sistema operativo che Javascript stesso ha. I singoli computer sulla rete che eseguono la rete Intranet possono essere configurati per consentire JScript window.print () comando scrivere direttamente sulla stampante senza visualizzare la finestra di dialogo di stampa. Questa configurazione dovrebbe essere impostata individualmente su ciascun computer client e va ben oltre lo scopo di un articolo su Javascript.

Quando si tratta di pagine Web su Internet, non è assolutamente possibile impostare un Comando Javascript per inviare direttamente alla stampante predefinita. Se i tuoi visitatori lo desiderano, dovranno impostare il proprio pulsante "Stampa veloce" sulla barra degli strumenti del browser.

instagram story viewer