Oggi vediamo come stampare agevolmente un div o una porzione di pagina HTML tramite l’uso dello script jPrintArea.
jPrintArea è uno script molto famoso ed estremamente utile e permette di stampare porzioni di pagina specificati tramite ID nella funzione. Usarla è estremamente semplice:
Collegamento e uso dello Script
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> <script src="js/jquery.jPrintArea.js"></script>
All’interno del DOM aggiungiamo questa riga di codice:
$('.stampa').click(function(){ $.jPrintArea('#calendario') });
Nell’html invece posizioniamo il trigger, che, se premuto, farà partire lo script e la stampa della porzione di codice (nel nostro caso il calendario).
<a href="#" class="stampa" title="Stampa">Stampa</a>
Ovviamente assicuratevi di avere il div “contenitore” da stampare, nel caso dell’esempio il file HTML dovrà contenere un div di questo tipo:
<div id="calendario"> <h1>La mia prima stampa!</h1> </div>
Script jPrintArea Completo
jQuery.jPrintArea=function(el)
{
var iframe=document.createElement('IFRAME');
var doc=null;
$(iframe).attr('style','position:absolute;width:0px;height:0px;left:-500px;top:-500px;');
document.body.appendChild(iframe);
doc=iframe.contentWindow.document;
var links=window.document.getElementsByTagName('link');
for(var i=0;i<links.length;i++)
if(links[i].rel.toLowerCase()=='stylesheet')
doc.write('<link type="text/css" rel="stylesheet" href="'+links[i].href+'"></link>');
doc.write('<div class="'+$(el).attr("class")+'">'+$(el).html()+'</div>');
doc.close();
iframe.contentWindow.focus();
iframe.contentWindow.print();
alert('Stampa in corso...');
document.body.removeChild(iframe);
}
Da una prima, veloce, analisi veloce posso consigliarvi di personalizzare da subito il testo dell’alert che appare prima della stampa [RIGA 16]. Di base lo script crea una pagina “fittizzia” (var IFRAME) contenente solamente la porzione di codice recuperata dal DIV ID che passiamo alla funzione.
jPrintArea è stato testato su tutti i browser.
Uno script completo e molto efficace, con un pò di modifiche è possibile aggiungere altresì header personalizzati e rendere unica la pagina da stampare. Una sola parola…consigliato!






