Sur l'une de mes pages de mon site Web (codée en php), j'essaie d'ajouter 2 boutons (voire plus) d'impression, chacun imprimant une partie de la page Web. Par exemple, sur une page, il y a un tableau avec quelques valeurs et 2 graphiques en dessous. Je voudrais ajouter 2 boutons d’impression, un bouton imprimant le tableau et l’autre imprimant les deux graphiques. J'ai trouvé ceci Exemple mais je ne pouvais pas comprendre clairement. Toute aide ou exemple m'aiderait.
Merci d'avance.
Une idée simple est de créer certaines règles d’impression css antérieures ad hoc, par exemple.
.printtable * { display : none; }
.printtable table { display : block; }
et
.printtableandgraph * { display : none; }
.printtableandgraph img { display : block; }
alors les deux boutons devraient ajouter un .printtable
et une classe .printtableandgraph
pour l'élément body (ou un autre élément contenant votre table et vos graphiques) juste avant l'instruction window.print()
(si l'utilisateur clique deux fois ou plus sur le même bouton d'impression, vérifie précédemment si l'élément a déjà défini ce nom de classe)
C'est le code html/javascript qui ouvrira la boîte de dialogue Imprimer du navigateur lorsque l'utilisateur cliquera dessus.
<button onClick="window.print()">Print this page</button>
Si votre table est dans une utilisation de div avec id = 'printTable':
<a href="#null" onclick="printContent('printTable')">Click to print table</a>
EDIT: Voici la fonction "printContent ()"
<script type="text/javascript">
<!--
function printContent(id){
str=document.getElementById(id).innerHTML
newwin=window.open('','printwin','left=100,top=100,width=400,height=400')
newwin.document.write('<HTML>\n<HEAD>\n')
newwin.document.write('<TITLE>Print Page</TITLE>\n')
newwin.document.write('<script>\n')
newwin.document.write('function chkstate(){\n')
newwin.document.write('if(document.readyState=="complete"){\n')
newwin.document.write('window.close()\n')
newwin.document.write('}\n')
newwin.document.write('else{\n')
newwin.document.write('setTimeout("chkstate()",2000)\n')
newwin.document.write('}\n')
newwin.document.write('}\n')
newwin.document.write('function print_win(){\n')
newwin.document.write('window.print();\n')
newwin.document.write('chkstate();\n')
newwin.document.write('}\n')
newwin.document.write('<\/script>\n')
newwin.document.write('</HEAD>\n')
newwin.document.write('<BODY onload="print_win()">\n')
newwin.document.write(str)
newwin.document.write('</BODY>\n')
newwin.document.write('</HTML>\n')
newwin.document.close()
}
//-->
</script>
Bouton d'impression
<button onClick="window.print()">Print this page</button>`
Utilisez ce code pour imprimer n'importe quelle page Web, il n'y a qu'un seul retrait de son impression tous les boutons et la barre de menus.
Pour imprimer une partie de la page, vous pouvez utiliser print.css et le bouton Imprimer pour une approche simple et rapide.
body {visibility:hidden;}
.print {visibility:visible;}
Ajoutez la classe .print aux portions appropriées de votre page.
Bouton Ajouter:
<button onClick="window.print()">Print this page »</button>
Les résultats d'impression sont nets et propres.