IMPRIMER UNE ZONE D'UNE PAGE WEB II

coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 - 5 mai 2005 à 22:18
meliubaf Messages postés 22 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 6 novembre 2009 - 22 mars 2010 à 14:40
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31220-imprimer-une-zone-d-une-page-web-ii

meliubaf Messages postés 22 Date d'inscription lundi 1 octobre 2007 Statut Membre Dernière intervention 6 novembre 2009
22 mars 2010 à 14:40
Bonjour, avant j'utilisais ce genre de script, plus maintenant. Je préfère utiliser les "feuille de style CSS pour l'impression" soit l'utilisation de media="print" dans la ligne d'appel à une feuille CSS <link rel="stylesheet" type="text/css" href="toto.css" media="print">
voici deux références simple en français :
http://www.alsacreations.com/tuto/lire/586-feuille-style-css-print-impression.html
http://www.pompage.net/pompe/impression/
cs_abdosoft Messages postés 1 Date d'inscription lundi 25 mai 2009 Statut Membre Dernière intervention 18 août 2009
18 août 2009 à 20:25
merci bcp pour ce script il fonction tres bien sur mozilla mais je rencontre un probleme en utilisant IE ,il sagit du bouton "imprimer cette page" qui s'affiche sur la page a imprimer
Y a t'il une solution? et merci de votre aide.
younes777 Messages postés 9 Date d'inscription jeudi 20 décembre 2007 Statut Membre Dernière intervention 12 mai 2009
19 févr. 2009 à 16:34
votre script ma aider
Merci
cs_magy91 Messages postés 2 Date d'inscription mardi 8 janvier 2008 Statut Membre Dernière intervention 30 décembre 2008
30 déc. 2008 à 21:45
bonjour
j'ai essayé d'utiliser ton script mais je rencontre quelques problèmes. Actuellement j'ai mis le script à la fin de ma page et il imprime toute la page. J'aimerai qu'il n'imprime que mon deuxième tableau, et sans mon menu de haut de page.
peux tu m'aider svp
cs_bel84 Messages postés 1 Date d'inscription samedi 12 janvier 2008 Statut Membre Dernière intervention 2 mars 2008
2 mars 2008 à 03:02
Bonjour,

Ce script fonctionne très bien,mais malgrès tout, j'ai un bug:
Je l'utilise pour imprimer une table dans laquelle il y a d'autres tables, et dans l'une de celles-ci, un formulaire.

Sur I.E., l'impression contient bien les valeurs entrées dans le formulaire, et c'est impec. Mais avec Firefox, ces valeurs ne sont pas reproduites.

Y a t'il une solution?
Merci de votre aide.
cs_karinal Messages postés 1 Date d'inscription vendredi 2 février 2007 Statut Membre Dernière intervention 23 juillet 2007
23 juil. 2007 à 16:34
merci infiniment pour ce script génial qui m'a aidé à résoudre un grand problème mais reste des petits détails
le lien "imprimer cette page" s'affiche aussi ce qui est n'est pas trop beau ,une 2ème chose c qu'il faut faire de sorte que l'impression se déclenche automatiquement sans qu'on aura à effectuer ces lourdes taches
mais en tout cas je te félécite pour ce script interressant
araboss Messages postés 6 Date d'inscription lundi 12 février 2007 Statut Membre Dernière intervention 13 avril 2007
14 mars 2007 à 02:28
merci pour le script
mais je veux mèttre le script dans le head et mettre le bouton imprimer n'import où dans ma page
comment je fait?
fotechyss Messages postés 1 Date d'inscription vendredi 2 avril 2004 Statut Membre Dernière intervention 2 septembre 2006
2 sept. 2006 à 19:23
Ce code est génial. Merci je le trouve vraiment beaucoup plus interressant que les css
pagis78 Messages postés 6 Date d'inscription mercredi 20 juillet 2005 Statut Membre Dernière intervention 18 avril 2008 6
16 juin 2006 à 16:16
Bravo et Merci
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
11 juin 2006 à 09:13
display:none; permet de cacher l'objet...

<style media="print" type="text/css">
body{
display:none;
}
.printzone {
display:block;
}
</style>

est surement mieux...

tu as aussi des méthodes en CSS 3 (en partie suporté par mozilla) qui permettent de remplacer entièrement cette source, y compris pour les urls des liens...
cedcyr Messages postés 20 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 15 février 2014
11 juin 2006 à 00:23
je débute et donc un peut d'aide ne serais pas de refus. aprés avoir lu tout vos indication et les divers remarques de correction en mettant les code
et
avant et aprés chaque zone que je ne veut pas imprimer ainsi que <style media="print" type="text/css">
.printzone {display:none} </style> dans l'entête de mon document tout va bien a une écception prés. Il m'imprime des pages blanche en plus du tableau que je veut imprimer correspondant au partie que j'ai masqué, pourquoi? et comment puis-je corriger cela merci d'avance.
dircom45 Messages postés 2 Date d'inscription mardi 17 janvier 2006 Statut Membre Dernière intervention 17 janvier 2006
17 janv. 2006 à 18:52
Merci pour le script, c'et génial. J'ai qiand m^me un problème: on fait comment pour changer la couleur de la police, car mon texte d'origine est blanc sur font noir et je veux l'imprimer en noir sur fond blanc.

Donc dans la ligne ci-dessous il doit manquer une fonction:

PSR_f1.document.write("<html><head><title>" + PSR_title + "</title></head>"+PSR_content+"</html>");

merci de votre aide

dircom45
zboubi42 Messages postés 2 Date d'inscription jeudi 1 décembre 2005 Statut Membre Dernière intervention 1 décembre 2005
1 déc. 2005 à 11:25
laissez tomber j'avais un mauvais caractère qui trainait ...
zboubi42 Messages postés 2 Date d'inscription jeudi 1 décembre 2005 Statut Membre Dernière intervention 1 décembre 2005
1 déc. 2005 à 11:22
Petite question je souhaites définir le script mais dans un fichier print.js et dans mes pages web appeller ce script (ca m'évite de changer de partout si je veux faire une modif) mais malheuresement cela ne fonctionne pas.
J'appelle mon script de la facon classique :
<Script Language="Javascript" src=print.js></script>
Le fichier print.js contient le code donné ici meme mais je n'ai pas le bouton
Merci pour vos réponses
ifebo Messages postés 181 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
16 oct. 2005 à 00:56
Merci Pascalitos C'est un éclaicissement de plus qui me rend bien service. J'ai trouvé cette adresse sur laquelle j'ai également obtenu beaucoup de lumière sur les css en rapport avec l'impression. Elles est à retenir même par les connaisseurs :
http://www.openweb.eu.org/articles/css_impression/

Encore merci.
cs_Pascalitos Messages postés 9 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 15 octobre 2005
15 oct. 2005 à 23:22
Bonjour

avec le code ci-dessous

<Style media="print" type="text/css">
.printzone {display:none}
</Style>

tu masques les éléments identifiés avec la classe .printzone
pour media="print" donc l'impression.

Pour obtenir l'effet que tu désires il faut faire l'inverse,
c'est à dire
dans une déclaration de styles : media="print"
tu peux masquer tous les éléments ne devant pas apparaître à l'impression avec une classe .noprint { display:none } appliquées à chacun de ces éléments
et ne pas appliquer cette classe aux éléments que tu souhaites imprimer.
ifebo Messages postés 181 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
15 oct. 2005 à 20:51
Bon, je viens de me faire une page de test ci-dessous :

<HTML>
<HEAD>
<TITLE>Imprimer une zone dans la page</TITLE>

<Style media="print" type="text/css">
.printzone {display:none}
</Style>

</HEAD>



<form>

</form>





<ol type="1">
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
</ol></li>

<HR Align="center" Size="10" width="80%" color="#990000">



<ol type="A">
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
<li>Ligne de texte
</ol></li>





</HTML>

Quelqu'un aurait-il la possibilité de me dire pouquoi la zone exclue de l'impression est justement celle qui est censée s'imprimer ?
Celle donc qui est entre
et
?
Merci, car si je ne l'apprend pas ici je ne l'apprendrais nulle part.
ifebo Messages postés 181 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
15 oct. 2005 à 00:30
Merci coucou747, j'avais bien compris qu'il s'agissait d'un identifiant. Mais je me suis un peu mélangé les crayons. la fatigue sans doute, à moins que ce ne soit l'âge ;-).
On efface tout et on recommence ! Merci encore.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
14 oct. 2005 à 23:30
NON !

UN ID EST UN IDENTIFIANT !!!

(utilisable une seule fois !!!)

<style media="print" type="text/css">
.printzone {display:none}
</style>
ifebo Messages postés 181 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
14 oct. 2005 à 03:02
Bin Heuuu! ça n'a pas fonctionné ???
Comme je n'y comprend rien je mets ci-dessous le code tel que je l'ai écrit peut-être verrez vous l'erreur ?

<!-- La CSS dans le HEADER -->
<Style media="print" type="text/css">
#printzone {display:none}
</Style>


<!-- DANS LE BODY -->



<!-- zone à imprimer comprenant un tableau + texte formaté par des css donc avec des <class="bof"> aussi des -->



<!-- La commande d'impression -->
<form>

</form>

Le class="bouton" c'est parce qu'il y a une mise en forme sur le bouton depuis une css dans le header. Est-ce que ça peut perturber id="printzone" qui est dans la même ligne ?
ifebo Messages postés 181 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
14 oct. 2005 à 01:34
Merci coucou747. Ha vraiment ! y a des fois !+@!*%§ !!! et encore je me retient ! Merci. Je vais tester ça de ce pas.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
12 oct. 2005 à 23:25
pas class mais id !
ifebo Messages postés 181 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
12 oct. 2005 à 22:38
Oups ! j'ai oublié aussi de dire que j'ignore quelle est la commande possible pour lancer l'impression de cette zone.
J'ai cru m'en tirer avec :
<form>
texte, texte, texte
</form>
Mais c'est toute la page qui est imprimée et ça nous donne au final 4 pages inutiles. Une aurait suffit.
Merci encore de vos bons conseils.
ifebo Messages postés 181 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 28 décembre 2006
12 oct. 2005 à 22:28
Bonjour, Puisque personne n'en dit rien c'est que ça doit paraître complètement évident à tous sauf à l'ignare que je suis.
Voilà, je n'ai pas compris comment indiquer soit par css soit par javascript le début et la fin de la zone que je veut imprimer dans ma page ? j'avais imaginé un tag genre
texte, texte, texte
partant de la css :
<style media="print" type="text/css">
#printzone {display: none}
</style>
mais ça n'a pas fonctionné ?
Avec le javascript, je n'ai rien essayé.
Quelqu'un peut-il m'aider. Merci.
cs_Une Messages postés 1 Date d'inscription vendredi 30 septembre 2005 Statut Membre Dernière intervention 30 septembre 2005
30 sept. 2005 à 17:32
Merci pour ce code qui me rend bien des services en attendant que mon site soit refait en XHTML...
Quelles modifications faudrait-il faire pour imprimer la balise grand-parent, voire arrière-grand-parent de celle où est placé le script ? Est-ce possible, d'ailleurs ?
Merci d'avance
Une
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
27 sept. 2005 à 18:18
<link rel="stylesheet" type="text/css" media="print" href="ma feuille css en cas d'impression" />

<link rel="stylesheet" type="text/css" media="screen,projection" href="ma feuille css normale" />
gwpkwz Messages postés 51 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 10 août 2005
26 sept. 2005 à 21:08
vas lire les feuilles de styles de wikipedia par exemple

"Et bien enfin quelqu'un de raisonnable, Merci coucou747"
J'avais renoncé devant ce script datant de l'âge de pierre !
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
26 sept. 2005 à 21:01
"Comment intégrer le code dans toutes les balises DIV générées dynamiquement ?"

des class et du CSS

vas lire les feuilles de styles de wikipedia par exemple
cs_Pascalitos Messages postés 9 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 15 octobre 2005
25 sept. 2005 à 13:18
Comment intégrer le code dans toutes les balises DIV générées dynamiquement ?

Rappel sur le fonctionnement du script
Le script affiche dans une nouvelle fenêtre le contenu de la balise parente. Si la balise est un DIV , si le script est contenu dans cette balise le script pourra en afficher son contenu.
Si vous souhaitez pouvoir imprimer plusieurs zone DIV de la même page indépendamment, il faut insérer le script dans chaque zone


Pour revenir à la question
Cela dépend comment sont générées les balises DIV.
Avec un gestionnaire de contenu,
.vous pouvez insérer le script au niveau du formulaire de saisie des contenus, mais il faut répéter l'opération à chaque fois
.ou vous pouvez insérer le script au niveau du template (modèle) qui permet de générer la page dynamiquement, cette solution est préférable.
insérer le script
cs_Pascalitos Messages postés 9 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 15 octobre 2005
25 sept. 2005 à 13:07
Ajouter window.print()
Il faut lancer l'action window.print() à la fin du chargement du document, pour cela il faut déclencher une action avec onload dans la balise body.

Remplacer la ligne 14
PSR_f1.document.write("<html><head><title>" + PSR_title + "</title></head>"+PSR_content+"</html>");

par la ligne suivante
PSR_f1.document.write("<html><head><title>" + PSR_title + "</title></head>"+PSR_content+"</html>");
foussil Messages postés 5 Date d'inscription samedi 19 avril 2003 Statut Membre Dernière intervention 19 septembre 2005
19 sept. 2005 à 14:12
merci pour ce code
et si jai des balise div qui se genere dynamiquement comment je peut l'integré dans tous mes balise
car si je copie le code la boulse qui creé les balise c'est toujour le contenu de la premiere balise qui s'imprime
nounou_sl Messages postés 1 Date d'inscription mercredi 31 août 2005 Statut Membre Dernière intervention 19 septembre 2005
19 sept. 2005 à 10:19
merci pour le script, juste une petite question: comment peut-on appeler l'api d'imprimante (window.print() )lors du chargement de la page generée?
cs_Pascalitos Messages postés 9 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 15 octobre 2005
29 juin 2005 à 23:01
Peut-on mettre une image à la place du bouton?
Réponse : oui

Il faut remplacer le bouton ( balise HTML )
par une image ( balise HTML )
ou par un bouton de type image (balise HTML ) .
----------------------------------------------------------------------

Au final pour remplacer le bouton par une image avec une balise
");

en corrigeant le lien pour l'image en fonction du nom du fichier image,
ici : src='images/bouton.gif'
virgincola Messages postés 1 Date d'inscription lundi 20 octobre 2003 Statut Membre Dernière intervention 29 juin 2005
29 juin 2005 à 20:48
Bonjour à tous,
Merci pour le script vraiment génial !!!
Petite question :
Peut-on mettre une image à la place du bouton?
Merci
cs_bleck Messages postés 2 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 23 juin 2005
23 juin 2005 à 18:13
Merci pour ta reponse.
Il n'y a donc pas de solution pour rajouter un bouton imprimer a ma page et obtenir qu'il n'imprime qu'une seule feuille, celle du formulaire?
A bientot
Bleck
cs_Pascalitos Messages postés 9 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 15 octobre 2005
23 juin 2005 à 16:57
Réponse à Bleck

tu as placé le script en dehors des balises HTML
<html>...</html><script>....</script>
Il faut placer ce script dans la zone à imprimer c'est à dire par exemple à l'intérieur d'une balise td ou d'une balise div.

Mais dans le cas de ta page, cela ne présente pas d'intérêt car elle ne contient qu'une application Flash. Ce script ne présente un intérêt que lorsque l'on veut imprimer qu'une portion de la page.

Désolé
cs_bleck Messages postés 2 Date d'inscription samedi 21 mai 2005 Statut Membre Dernière intervention 23 juin 2005
23 juin 2005 à 16:22
Bonjours a tous,

la verité c'est que je ne comprend pas grand chose. Mais lorsque j'ai lu la description du script, là j'ai compris que c'etait ce dont j'avais besoin. Je l'ai donc copié et collé sur ma page, mais lorsque je clique imprimer il me dit:" cannot find your XML file. You need to uploadit for this form to work". Je comprend ce qu'il dit, mais pas pourquoi il le dit. Quelqu'un peut il m'aider?
Lien de la page http://www.movilextrem.com/docrepa.html
Merci d'avance
Bleck
cs_Pascalitos Messages postés 9 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 15 octobre 2005
15 juin 2005 à 12:46
Réponse pour ajouter une feuille de style au popup généré
il faut rajouter un lien vers la feuille de style dans la fonction à la ligne 14


<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><link href='fileadmin/print.css' rel='stylesheet' type='text/css'></head> "+PSR_content+" </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 ("

");
}
</script>
friteuseb Messages postés 1 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 15 juin 2005
15 juin 2005 à 12:25
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.
cs_hellonono Messages postés 4 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 6 juillet 2006
8 juin 2005 à 15:40
Je suis interessé par l'impression grace aux styles. comment ca marche exactemnt ?
gwpkwz Messages postés 51 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 10 août 2005
6 mai 2005 à 12:15
<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_Pascalitos Messages postés 9 Date d'inscription mardi 22 juin 2004 Statut Membre Dernière intervention 15 octobre 2005
6 mai 2005 à 01:06
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.
coucou747 Messages postés 12303 Date d'inscription mardi 10 février 2004 Statut Membre Dernière intervention 30 juillet 2012 44
5 mai 2005 à 22:18
je n'ai pas regardé le code, je dirais seulement que l'on peut faire ça avec les class css
Rejoignez-nous