Bonjour chez vous

Voila mon problème :

Sur mon site, j'ai une invitation à faire imprimer
J'ai créé un bouton " imprimer l'invitation"
Mais le soucis est que quand je clique dessus,
L'invitation apparait sur l'écran avec la boite de dialogue de l'imprimante.
Mais quand je clique imprimer, j'ai une PAGE BLANCHE !

Ou est le HIC ?


```<form><script language="javascript">
function imprimer()
{
fenetre=window.open("http://files.gandi.ws/gandi54587/image/flyer.jpg");
fenetre.print();
fenetre.top.close();
}
</script>
  <div style="text-align:center" >
  <p>
      <input type="button" value="Imprimer l'invitation" name="B1" onclick="imprimer();" />
  </p>
</div>
</form></input>```

Mon site : www.fripes.jeannedavid.com

12 réponses


C'est normal que ton image ne s'imprime pas puisque l'impression de la fenetre se lance alors que l'image n'est pas encore chargée, d'où une page blanche !

J'ai trouvé sur le net une solution
Dans ton head, place ce script :

<script>
function makepage(src)
{
  // We break the closing script tag in half to prevent
  // the HTML parser from seeing it as a part of
  // the *main* page.

  return "<html>\n" +
    "<head>\n" +
    "<title>Temporary Printing Window</title>\n" +
    "<script>\n" +
    "function step1() {\n" +
    "  setTimeout('step2()', 10);\n" +
    "}\n" +
    "function step2() {\n" +
    "  window.print();\n" +
    "  window.close();\n" +
    "}\n" +
    "</scr" + "ipt>\n" +
    "</head>\n" +
    "<body onLoad='step1()'>\n" +
    "<img src='" + src + "' width='339px' height='461px'/>\n" +
    "</body>\n" +
    "</html>\n";
}

function printme(evt)
{
  if (!evt) {
    // Old IE
    evt = window.event;
  }    
  var image = evt.target;
  if (!image) {
    // Old IE
    image = window.event.srcElement;
  }
  src = image.src;
  link = "about:blank";
  var pw = window.open(link, "_new");
  pw.document.open();
  pw.document.write(makepage(src));
  pw.document.close();
}
</script>

Puis dans ton body :

<img src="http://files.gandi.ws/gandi54587/image/flyer.jpg" onClick="printme(event)" width="339px" height="461px" style="cursor:pointer" />

Il n'y aura qu'a cliquer sur l'image pour l'imprimer.
Du coup, à la place de ton bouton « Imprimer l'invitation », place simplement une phrase pour indiquer qu'il faut cliquer sur l'invitation pour l'imprimer.

Autre méthode plus propre (source) :

<script language="javascript" type="text/javascript">
     function printdiv(divID)
     {
       var headstr = "<html><head><title></title></head><body>";
       var footstr = "</body>";
       var newstr = document.all.item(divID).innerHTML;
       var oldstr = document.body.innerHTML;
       document.body.innerHTML = headstr+newstr+footstr;
       window.print();
       document.body.innerHTML = oldstr;
       return false;
     }
</script>

<div id="divID">
    <img src="http://files.gandi.ws/gandi54587/image/flyer.jpg" width="339px" height="461px"/>
</div>
<input name="b_print" type="button" onclick="printdiv('divID');" value=" Imprimer l'invitation " />

Cette fois, tu peux avoir un bouton qui t'imprime uniquement l'élément que tu souhaites !

Fais attention, tu as copier :

<scr><script>

devant :

<scr><script> function makepage(src)

!!!
Mais oublis mon premier post, et utilises plutôt l'autre méthode plus propre que j'ai indiqué.

MERCI MERCI MERCI

Mais cela m'imprime un cadre blanc !

J'ai fait 5 forums sur le HTML tu est le seul à avoir trouvé une presque solution !

Bien ce ce problème ai été posé plusieurs fois sur le net, personne n'avit trouvé de solution encore !

Chapeau

Ben ça fonctionne chez moi, le code génére bien une page avec ton flyer et propose de l'imprimer !
C'est quoi ton histoire de cadre blanc, peux tu être plus précis pour que je puisse comprendre stp ?

Voila : dans la fenetre de previsualisation, il n'y aqu'un carré blanc à imprimer( le pourtour de l'affiche ). Quand je clique imprimer ça imprime juste le tour de l'affiche.
Je ne pense pas à un problème avec mon imprimante car cela a fonctionné avec ton premier code.

Tu es sur quel navigateur ?

Sinon, reprend le premier code si c'est celui la qui fonctionne.
Tu sais, je ne veux pas te démoraliser en te disant que tu as perdu ton temps, mais si tu indiques simplement aux utilisateurs qu'ils leur suffit de faire clic droit sur l'image, puis choisir «afficher l'image», et enfin d'appuyer sur « control P » ou « pomme P » pour ceux qui sont sur mac ou encore d'aller dans fichier > et imprimer, le résultat sera le même.
Voir mieux encore, tu seras certain que tout le monde pourra l'imprimer. Et en plus, cela t'évitera de chercher tous les bugs d'incompatibilité entre les navigateur pour produire un code optimum !

Au fait, pour t'assurer que c'est un bug de navigateur qui produit le « carré blanc », essaye un autre navigateur.

PS : si ça imprime juste le tour de l'affiche, ça veux bien dire que ton imprimante te sort une page blanche, c'est bien cela ?

Grand Grand MERCI pour ton aide.

Je suis juste un peu trop perfectionniste et j'ai comprendre quand ça cloche !
J'ai une idée et je bloque tant que ça ne fonctionne pas comme je veux.
Ta solution de cliquer sur l'image est parfaite ! J'avais juste pensé à autre chose c'est tout.
Tu sais comme les gens sont fainéants, dès qu'ils doivent cliquer plus de trois fois ils abandonnent.
Je veux juste faire quelque chose de beau et simple.
Grâce à toi c'est fait.
Encore merci.

J'ai un MacMini, un MacBook, un iMac.
Navigateur : Safari . Firefox pour les tests. Chrome et IE chez un pote pour vérif compatibilité

Bonne route

Kenavo

Oui mais a force de faciliter les choses à outrance, les gens finissent par se laisser aller à la fainéantise (je sais de quoi je parle étant donné que je dois être le plus grand fainéant sur cette planète, qui par chance s'en est rendu compte !).
Du coup, de ce point de vue, il est normal que des gens soient fainéant, non pas par choix, mais par laissé allé sans s'en rendre compte ! Alors je pense qu'il n'est pas judicieux de faciliter toujours plus les choses afin de n'avoir besoin d'aucuns efforts a faire.

Au fait, pour la seconde technique « plus propre » qui ne fonctionnait pas chez toi, as tu essayé chez ton pote avec chrome, firefox, et IE ? D'ailleurs, as tu essayé avec firefox sur ton mac ? Et est ce que même sur firefox sur ton mac ça ne fonctionne pas ?

Salut
Tout fonctionne sauf safari !
Je viens de faire une mise à jour de mon OS sur Yosemite ( pas top )
Je pense qu'il doit y avoir un problème avec Safari !

Tu n'aurais pas javascript de désactivé sur safari par hasard ?

Pour activer JavaScript avec Safari 3 ou ultérieur sur Mac OS X (source) :

  1. Sélectionnez Safari > Préférences.
  2. Cliquez sur Sécurité.
  3. Cochez les cases à côté de Activer les Plugins, Activer Java et Activer JavaScript.
  4. Assurez-vous que cette case à cocher n'est pas sélectionnée : "Bloquer les fenêtres contextuelles. »
  5. Rafraichissez votre navigateur, via le raccourci clavier Cmd+R ou le bouton Rafraichir situé à l'extrémité droite de la zone de saisie de l'URL.