IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Impression d'une partie de la page avec du javascript


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Par d�faut Impression d'une partie de la page avec du javascript
    Bonjour,

    j'essaye d'imprimer une partie d'une page web a partir du code javascript et je n'arrive pas a conserver la mise en page lors de l'impression.

    Voile le code que j'utilise :

    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
            function printPartOfPage(elementId) {
                var printContent = document.getElementById(elementId);
                var printWindow = window.open('','','left=50000,top=50000,width=0,height=0');
     
                printWindow.document.write(printContent.innerHTML);
                printWindow.document.close();
                printWindow.focus();
                printWindow.print();
                printWindow.close();
            }

    la partie � imprimer en question est :

    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    <div id="pnlSummary" class="summary boxTop">
     
                <div id="updSummary">
     
                        <h2>
                            Résumé du fichier
                        </h2>
                        <span class="data">
                            <span id="lblNbTitre">Nombre de produits</span>
                            :
                            <span id="litNbTitre">  579</span>
                        </span><span class="data">
                            <span id="lblNbCards">Nombre de cartes</span>
                            :
                            <span id="litNbCards">  0</span>
                        </span><span class="data">
                            <span id="lblNbBenef">Nombre de bénéficiaires</span>
                            :
                            <span id="litNbBenef">  43</span>
                        </span><span class="data">
                            <span id="lblTotalFacialValue">Valeur totale</span>
                            :
                            <span id="litTotalFacialValue"> 4 053,00</span></span><span class="data">
                                <span id="lblDeliveryDate">Date de livraison souhaitée</span>
                                :
                                <span id="litDeliveryDate">20/01/2013</span>
                            </span><span class="data">
                                <span id="lblErrorsCount">Nombre d erreurs restantes</span>
                                :
                                <span id="litErrorsCount">0</span>
                            </span><span style="clear: both; display: block;"></span>
     
    	</div>
     
    </div>

    Pourriez vous me donner un lien vers un tuto permettant de faire cela ? ou directement une solution pour que le design (css et mise en page )soit respect� ?

    Ce code HTML est g�n�r� � partir d'une page en ASP.NET.

    Merci d'avance !

  2. #2
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par d�faut
    Le probl�me (entre autre), c'est document.write. Plus tu l'�viteras, mieux tu te porteras (code inclus)
    Pourquoi fermer la popup avant de lancer la fen�tre d'impression ??
    Code javascript : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    function printPartOfPage(elementId) {
      var printContent = document.getElementById(elementId);
      var printWindow = window.open('','','left=50000,top=50000,width=0,height=0');
     
      printWindow.document.body.appendChild(printContent);
      printWindow.print();
    }

    Pour aller plus loin, je te conseille de te renseigner sur les media CSS. Plus particuli�rement le media print. Ce qui permet de faire des feuilles de style d�di�es � l'impression. Ainsi, plus besoin de passer par ce javascript bancal, c'est le CSS qui d�finit quoi imprimer.

  3. #3
    R�dacteur

    Avatar de Bovino
    Homme Profil pro
    D�veloppeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 55
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur Web
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Billets dans le blog
    20
    Par d�faut
    Pourquoi fermer la popup avant de lancer la fen�tre d'impression ??
    Il ne ferme pas la fen�tre, il ferme le document.
    Voir : Comprendre document.write() en JavaScript.
    Pas de question technique par MP !
    Tout le monde peut participer � developpez.com, vous avez une id�e, contactez-moi !
    Mes formations video2brain : La formation compl�te sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'int�gration de JSFiddle et CodePen sur le forum

  4. #4
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par d�faut
    En effet, j'ai lu trop vite. J'ai cru voir une fermeture de la fen�tre et non du document !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Par d�faut
    Bonjour,

    merci pour vos r�ponses,

    j'ai test� avec le append child, et j'obtiens une erreur :
    htmlfile: No such interface supported
    ou
    htmlfile: Type mismatch.
    si j'ajoute un .innerHTML sur le printcontent.

    Je vais me renseigner sur les mediaCSS pour vois si �a peux convenir !

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Par d�faut
    Si j'ai bien compris le but des Media CSS : c'est une nouvelle feuille de CSS qui n'est prise en compte que lorsque l'on essaye d'imprimer la page en cours par le browser ( avec ctrl + P ), donc il me suffit de cacher ce qui ne m�int�resse pas dans cette feuille de style et d'imprimer la page normalement ?
    en mettant bien "m�dia" dans les parametres de la sheet.

    J'ai bon ? ( en gros )

  7. #7
    Membre Expert
    Avatar de Kaamo
    Homme Profil pro
    Ing�nieur d�veloppement logiciels
    Inscrit en
    Avril 2007
    Messages
    1 165
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 38
    Localisation : France, Bouches du Rh�ne (Provence Alpes C�te d'Azur)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement logiciels
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 165
    Par d�faut
    Oui, c'est exactement l'id�e ! En mettant media=print
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <link rel="stylesheet" type="text/css" href="style_print.css" media="print" />
    et bien s�r, laisser l'autre feuille de style pour l'affichage "classique"
    Code html : S�lectionner tout - Visualiser dans une fen�tre � part
    <link rel="stylesheet" type="text/css" href="style_classique.css" />

    Pour encore aller plus loin, tu verras que l'on peut d�finir autre chose que print et ainsi s�lectionner une feuille de style en fonction, par exemple, de la taille d'un �cran.

    Bien s�r, il faut avoir conscience que les anciens IE (<= 8) ne sont pas compatibles.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Par d�faut
    Je ne pense pas avoir besoin de plus d'infos, j'ai juste besoin d'imprimer une popup a la fin d'une simple op�ration d'import de fichier.

    Merci pour les pistes, je vais tenter d'arriver a quelque chose demain matin !

  9. #9
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    Impression de pop ?
    Et si les popups sont bloqu�s ....

    le media print me parait bien plus adapt�
    un div en display none pour le media screen et le tour est jou� avec un self.print et un media print qui affiche le div et rend le reste de la page visible

    Un petit exemple pour l a route http://sk-martin.developpez.com/Certif.htm
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    36
    D�tails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2008
    Messages : 36
    Par d�faut
    Ce n'est pas une vraie popup, c'est juste une div cach� jusque l� qu'on affiche en gros quand le processus est termin�.

    c'est cette Div que j'aimerais imprimer ( voir code de mon premier post ).

  11. #11
    R�dacteur/Mod�rateur

    Avatar de SpaceFrog
    Homme Profil pro
    D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 659
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activit� : D�veloppeur Web Php Mysql Html Javascript CSS Apache - Int�grateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 659
    Billets dans le blog
    1
    Par d�faut
    C'est exactement ce que fais le code donn� en exemple ...

    Pour ce qui est de la fin du chargement si le contenu du div est charg� dynamiquement, je te conseillerais de egarder du cot� de jquery et de son load() et d'en utiliser le call back pour lancer l'impression


    Par contre dasn ton premier post il s'agit bien d'eun vraie popup
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    var printWindow = window.open('','','left=50000,top=50000,width=0,height=0');
    Ma page Developpez - Mon Blog Developpez
    Pr�sident du CCMPTP (Comit� Contre le Mot "Probl�me" dans les Titres de Posts)
    Deux r�gles du succ�s: 1) Ne communiquez jamais � quelqu'un tout votre savoir...
    Votre post est r�solu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de D�veloppez !

Discussions similaires

  1. R�ponses: 12
    Dernier message: 28/05/2011, 12h53
  2. Impression d'une partie d'une page
    Par mattvin dans le forum Configuration
    R�ponses: 2
    Dernier message: 30/10/2009, 09h32
  3. Impression d'une partie de la page
    Par gastoon dans le forum Struts 1
    R�ponses: 3
    Dernier message: 23/06/2009, 09h58
  4. [Tableaux] recharger une partie de la page seulement
    Par Bibicmoi dans le forum Langage
    R�ponses: 9
    Dernier message: 05/09/2005, 20h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo