Imprimer une zone d'une page web ii

Soyez le premier à donner votre avis sur cette source.

Snippet vu 37 651 fois - Téléchargée 29 fois

Contenu du snippet

(amélioration du script IMPRIMER UNE ZONE DANS UNE PAGE WEB déjà publié)

Le script permet de sélectionner le contenu d'une zone afin de le charger dans une nouvelle fenêtre pour impression. L'ouverture de la fenêtre d'impression est déclenchée par une action sur un bouton "Imprimer cette page".

Placer le script dans la zone à imprimer, par exemple une cellule de tableau ou un div.

Ce script est compatible DOM et a été testé avec IE5+, Mozilla 1.7.3, Opera 7.54, Nestcape 6 sous Windows.
Un test interdit l'affichage du bouton 'Imprimer cette page" avec les navigateurs anciens comme Netscape 4 et Internet Explorer 4

Source / Exemple :


<script language="javascript">
// ******************************************************************
// Impression d'une zone DOM: IE5+ Mozilla NN6 Win
// pascal.itos@wanadoo.fr
// http://www.dev35.com
// ******************************************************************
function PSR_imprimer () {
	var PSR_f1 = null;
	var PSR_content=document.getElementById('PSR_print').parentNode.innerHTML;
	var PSR_title=document.getElementsByTagName('title')[0].innerText;
	if (PSR_f1) {if(!PSR_f1.closed) PSR_f1.close();}
	PSR_f1 = window.open ('',"PSR_f1", "height=500,width=600,menubar=yes,scrollbars=yes,resizable=yes,,left=10,top=10");  ;
	PSR_f1.document.open();
	PSR_f1.document.write("<html><head><title>" + PSR_title + "</title></head><body bgcolor='#ffffff'>"+PSR_content+"</body></html>");
	PSR_f1.document.close();
	PSR_f1.document.getElementById('PSR_print').style.visibility='hidden';
	PSR_f1.focus();
}
if ( window.name != "PSR_f1" && document.body.parentNode ) {
  document.write ("<div align='right' id='PSR_print'><input  onclick='PSR_imprimer();' type='button'  style='font-family:arial; font-size:11px' value='Imprimer cette page'></div>");
}
</script>

Conclusion :


Il existe un petit problème avec Nestcape 6,
le titre de la nouvelle fenêtre n'est pas correctement recopié.
A voir un jour...

A voir également

Ajouter un commentaire

Commentaires

coucou747
Messages postés
12303
Date d'inscription
mardi 10 février 2004
Statut
Modérateur
Dernière intervention
30 juillet 2012
30 -
je n'ai pas regardé le code, je dirais seulement que l'on peut faire ça avec les class css
cs_Pascalitos
Messages postés
9
Date d'inscription
mardi 22 juin 2004
Statut
Membre
Dernière intervention
15 octobre 2005
-
L'impression de la zone d'une page peut effectivement être réalisée avec des styles CSS.

Mais tout le monde ne maîtrise pas forcément les styles et si le site existe déjà et contient de nombreuses pages avec des structures différentes cela peut demander de nombreuses reprises.

Ce script permet d'ajouter facilement sans aucune connaissance en programmation une fonctionnalité d'impression de zone dans des pages déjà existantes.
gwpkwz
Messages postés
51
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
10 août 2005
-
<style media="print" type="text/css">
#divbts, #txt1, #txt2{display: none}
</style>

est nettement plus simple que 22 lignes de code il me semble.
cs_hellonono
Messages postés
4
Date d'inscription
mardi 25 mai 2004
Statut
Membre
Dernière intervention
6 juillet 2006
-
Je suis interessé par l'impression grace aux styles. comment ca marche exactemnt ?
friteuseb
Messages postés
1
Date d'inscription
mardi 8 juillet 2003
Statut
Membre
Dernière intervention
15 juin 2005
-
salut,
bravo pour cette application, qui correspond parfaitement à mes besoins.
Cependant, j'aimerais que la popup générée contienne un style css.
J'ai essayé d'ajouter <link href="fileadmin/print.css" rel="stylesheet" type="text/css"> dans le document.write mais le bouton print disparait.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.