Creare un pulsante HTML per stampare una pagina web (o una sua porzione)

Stampare una pagina web รจ molto semplice: tutti i browser supportano la possibilitร  di stampare il contenuto della pagina web visualizzata, tuttavia puรฒ essere utile (o comodo) inserire direttamente nella pagina web un pulsante per attivare la funzione di stampa.

In questo articolo vedremo come creare un bottone HTML grazie al quale lโ€™utente del sito potrร  attivare la funzione di stampa con un semplice click, senza cioรจ dover interagire con i menu del browser.

Pubblicitร 

Inserire un pulsante / link per stampare la pagina web

Grazie a Javascript รจ possibile inserire, allโ€™interno del nostro sito web, un pulsante/link per stampare il contenuto della pagina corrente in modo estremamente semplice. Lโ€™accesso alla finestra di stampa avviene mediante lโ€™oggetto window.

Vediamo un esempio di bottone che, una volta premuto, attiverร  la finestra di dialogo della stampa:

<button onclick="window.print();">
  Stampa la pagina
</button>

Qualora, al posto del bottone, si preferisse un link si userร  questo codice:

<a href="javascript:window.print();">Stampa la pagina</a>

Volendo รจ anche possibile avviare automaticamente il processo di stampa automaticaente, cioรจ senza alcuna richiesta esplicita dellโ€™utente. Per farlo si farร  ricorso allโ€™evento onload direttamente nel corpo del documento:

<body onload="window.print();">

Lโ€™effetto dei codici visti sopra sarร  quello di avviare il processo di stampa del contenuto dellโ€™intera pagina web. Ma se si volesse consentire allโ€™utente di stampare una singola porzione della pagina e non lโ€™intero documento? Sicuramente la faccenda si farebbe piรน complicataโ€ฆ

Inserire un pulsante / link per stampare una specifica porzione della pagina web

Volendo creare un pulsante in grado di attivare la stampa non dellโ€™intero documento ma solo di una sua porzione si potrebbe agire nel modo seguente:

  1. Inseriamo, tra i tag <head> e </head>, la seguente funzione Javascript (incapsulandola, ovviamente, tra i tag <script> e </script>)
function stampa_id(ele_id) {
  var nw = window.open();
  nw.document.write(document.getElementById(ele_id).innerHTML);
  nw.print();
  nw.close();
}
  1. Contrassegnamo il contenuto da stampare inserendolo allโ€™interno di un elemento (ad esempio un paragrafo o un DIV) cui andremo ad assegnare un identificativo univoco attraverso lโ€™attributo "id".

Ad esempio:

<p>... BLA BLA BLA ...</p>
<p id="da_stampare">... TESTO DA STAMPARE ...</p>
<p>... BLA BLA BLA ...</p>
  1. Creiamo un pulsante per avviare la procedura di stampa della porzione di pagina desiderata.

Esempio:

<button onclick="stampa_id('da_stampare');">
  Stampa
</button>

Come potete notare, per avviare la stampa, abbiamo richiamato la nostra funzione "stampa_id()" passando in argomento lโ€™id dellโ€™elemento che contiene il contenuto che si desidera stampare.

Usare CSS per selezionare cosa stampare (e cosa non stampare)

Volendo personalizzare il risultato del processo di stampa della pagina web possiamo agire mediante i fogli di stile, integrando nel CSS del sito una serie di regole allโ€™interno della direttiva @media print.

Una soluzione semplice per selezionare cosa stampare e cosa no potrebbe essere quella di applicare una specifica classe agli elementi della pagina che non vogliamo vengano stampanti (come, ad esempio, menu, banner, annunci pubblicitari, fotter, ecc.).

@media print {
  .no-stampa { display: none !important; }
}

Tutti gli elementi a cui assegneremo la classe "no-stampa" non verranno stampati.

Altri contenuti interessanti

Pubblicitร 
Massimiliano Bossi
Massimiliano Bossi
Stregato dalla rete sin dai tempi delle BBS e dei modem a 2.400 baud, ho avuto la fortuna di poter trasformare la mia passione in un lavoro (nonostante una Laurea in Giurisprudenza). Adoro scrivere codice e mi occupo quotidianamente di comunicazione, design e nuovi media digitali. Orgogliosamente "nerd" sono il fondatore di MRW.it (per il quale ho scritto centinaia di articoli) e di una nota Web-Agency (dove seguo in prima persona progetti digitali per numerosi clienti sia in Italia che all'estero).

Leggi anche...

Servire immagini 2x con JavaScript o jQuery su display Retina e ad alta densitร 

Oggi la qualitร  visiva sul web รจ piรน importante...

Bloccare lโ€™orientamento di una pagina web su smartphone: come forzare la modalitร  portrait o landscape

Nellโ€™era mobile-first, lโ€™esperienza utente sui dispositivi mobili รจ un...

Numeri Random in JavaScript

La generazione di numeri random (numeri casuali) รจ unโ€™operazione...

Infinite scroll, come programmarlo su AMP e su Web con Javascript

L'infinite scroll รจ una tecnica di design e navigazione...

Codice Fiscale: 5 javascript per la verifica e il calcolo

Il codice fiscale รจ un identificativo tributario univoco che...

Math.ceil() โ€“ Arrotondare per eccesso con Javascript

Il metodo ceil() dell'oggetto Math di Javascript รจ utilizzato...
Pubblicitร