Comment imprimer en HTML ?

Réponses rédigées par Antoine
Dernière mise à jour : 2018-10-06 12:22:58
Question

Comment faire pour créer un bouton ou une fonction pour imprimer une page HTML ?

Réponse

Pour imprimer une page HTML et l'ensemble de son contenu, vous devez utiliser JavaScript et la fonction window.print().

Vous pouvez par exemple positionner la commande window.print() sur l'évènement onload de votre page HTML, via la balise body, de cette manière :

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

Il est également possible de lancer une impression manuellement via un bouton :

<input type="button" value="imprimer" onclick="window.print();" />

Si vous désirez imprimer qu'une portion de la page, ou bien le contenu d'une variable PHP, via un bouton imprimer, vous pouvez vous inspirer du code suivant :

<?php 
$html = "contenu à imprimer";
?>

<div id="imprimer" style="display:none;">
	<?php echo $html; ?>
</div>

<div>
	<input type="button" value="imprimer" onclick="imprimer();" />
</div>

<script type="text/javascript">     
function imprimer() {    
	var imprimer = document.getElementById('imprimer');
	var popupcontenu = window.open('', '_blank');
	popupcontenu.document.open();
	popupcontenu.document.write('<html><body onload="window.print()">' + imprimer.innerHTML + '</html>');
	popupcontenu.document.close();
}
</script>

Le code ci-dessus fonctionne de la manière suivante pour imprimer un contenu spécifique de la page HTML ou PHP :

  • L'utilisateur clique sur le bouton imprimer.
  • Le code JavaScript récupère le contenu à imprimer et le charge dans une nouvelle page.
  • La commande window.print() se lance automatiquement.