J´ai un problème qui peut sembler ridicule mais qui me prend la tete : j´arrive pas à imprimer une page Html comme je veux, via un clic sur une image.
Voici ce que j´ai essayé :
document.write "<input type=button name=´Imprimer´ Value=´imprimer´ onclick=´Javascript : window.print()´></input>"
Lorsque je clique sur Imprimer, rien ne se passe. Alors que lorsque je créé ce même input dans une page Html vide, le bouton fonctionne ! ![]()
J´vois pas trop d´où ca peut venir.
Mon script contient d´abord qqes fonctions, et ´calculs´, puis le body, ainsi que des tableaux résultants des fonctions précédentes.
document.write "<input type=button name=´Imprimer´ Value=´imprimer´ onclick=´VBScript: call WB.ExecWB(6,1)´></input>"
C´est la seule solution qui marche : la page est bien imprimée.
Mais au lieu d´un bouton, il serait plus joli de mettre une image ´cliquable´.
Alors j´ai essayé :
document.write "<a href=""VBScript: WB.ExecWB(6,1)""><img src=´boutonImprimer.gif´></a><br>"
Sans succès
Connaitriez vous une autre solution en Html, avec une fonction VbScript ou Javascript ?
Ce sont les seuls pr l´instant que j´ai trouvées sur Google...
![]()
Tu n´es pas obligé de d´écrire ton input en javascript. Tu peux directement le mettre dans ta page HTML.
Sinon, pour que l´on puisse comprendre ce qui se passe, il faudrait que tu nous donne directement la page HTML avec le javascript dedans. ou alors la page HTML tel qu´elle est apres modification par le javascript.
Ok, merci pour ton aide
Donc voici un copier coller seulement de la partie "Apparence à l´écran" de ma page html.
Au dessus de ca, il y´a entre 2 balises les " calculs" pour les valeurs contenues dans le tableau. Les fonctions utilisées sont propres à l´entreprise dans laquelle je suis, donc j´pense pas que ca soit nécessaire que j´le mette
J´ai donc :
<SCRIPT FOR=window EVENT=onload LANGUAGE="VBScript">
Fonctions, calculs des valeurs à mettre dans les tableau ...
</script>
document.write "<body>"
document.write "<Form name=´Page´>"
document.write "<OBJECT ID=""WB"" WIDTH=0 HEIGHT=0
CLASSID=""CLSID:8856F961-340A-11D0-A96B-00C04FD705
A2""> </OBJECT>"
document.write "<input type=button name=´Imprimer´ Value=´imprimer´ onclick=´Javascript : window.print()´></input>"
´document.write "<input type=button name=´Imprimer´ Value=´imprimer´ onclick=´VBScript: call WB.ExecWB(6,1)´></input>"
´document.write "<a href=""VBScript: WB.ExecWB(6,1)""><img src=´boutonImprimer.gif´></a><br>"
´document.write "Test ==> " & test
if(ListCdInt(0) <> "" or ListCdInt2(0) <> "") then
´Tableau Appel d´offre
document.write "<br><br><a name=""Haut de page""></a><br>"
document.write "<table style=´font-family: arial; border-style: none; text-align: left; width: 85%;´ border=´1´ bordercolor=#000000 cellpadding=´0´ cellspacing=´0´>"
document.write "<tr bgcolor=´RGB(94, 187, 204)´><td colspan=4>I. Appel d´offres</td></tr>"
document.write "<tr bgcolor=#CCFFFF><td width=20% align=middle>Marché</td>"
document.write "<td width=20% align=middle>Statut</td>"
document.write "<td width=30% align=middle>Description</td>"
document.write "<td width=35% align=middle>Période</td></tr>"
document.write "<tr>"
for j = 0 to compteurAO - 1
´document.write "<td width=15%><a href=´#Marche" & ListCdInt(j) & "´>" & ListCdInt2(j) & "</a></td>"
document.write "<td width=15%><a href=´#Marche" & ListCdInt(j) & "´>" & ListCdInt(j) & "</a></td>"
document.write "<td width=20%>" & ListEtat(j) & "</td>"
document.write "<td width=30%>" & ListDesc(j) & "</td>"
document.write "<td width=35%>Du " & ListDateDeb(j) & " Au " & ListDateFin(j) & "</td></tr>"
next
document.write "</table><br><br>"
Bon y´a d´autres tableaux en dessous, mais j´ai un peu abrégé ![]()
Désolé j´me suis trompé : toute la partie des document.write est aussi entre les 2 balises <script> </script>
J´ai essayé de mettre un lien pour imprimer la page en dehors de balises <script> et ca marche.
Donc apparamment, c´est ca qui bloque.
Mais c´est pas possible que j´mette le lien en dehors de la partie <script></script> car cette dernière se charge directement à l´ouverture de la page, et donc le lien est "écrasé" par la nouvelle page avec les tableaux.
Mais j´comprend pas pourquoi la fonction VBScript ne fonctionne qu´avec un bouton et pas avec un lien... ![]()
<la_balise_que_tu_veux onclick="window.print()" />
exemples :
<a onclick="window.print()" />imprimer</a>
<input type="button" onclick="window.print()" />imprimer</a>
Je viens de réussir !
deepblue : oui, c´est à peu près ce que j´essayais auparavant
Mais j´ai ensuite tenté :
document.write "<br><br><a href=´#´ onclick=´VBScript: call WB.ExecWB(6,1)´><img src=BoutonImprimer.gif /></a><br>"
Et ca marche !
Je vais juste chercher comment faire pour imprimer toute la page sauf le bouton Imprimer, et sans le pied de page.
Si qqn a une idée de la commande, ca serai cool ![]()
met pas de document.write(ce que j´ai mis), sinon c´est logique que ça ne fonctionne pas !
Justement, j´suis obligé de les mettre car c´est dans le script : le script affiche des tableaux dès le chargement de la page. J´avais déjà essayé sans les document.write.
Donc si je met les window.print sans les document.write, alors le lien ´Imprimer la page´ n´apparait pas car c´est la page html générée par le script qui apparait.
Mon lien doit donc etre généré par le script.
en ben coupe le script, ecris le en dur entre tes tableaux
<SCRIPT FOR=window EVENT=onload LANGUAGE="VBScript">
partie 1 du tbl
</script>
lien pour imprimer
<SCRIPT FOR=window EVENT=onload LANGUAGE="VBScript">
partie 2 du tbl
</script>
En fait, ca y´est : le lien imprime bien la page HTML :
document.write "<OBJECT ID=""WB"" WIDTH=0 HEIGHT=0
CLASSID=""CLSID:8856F961-340A-11D0-A96B-00C04FD705
A2""> </OBJECT>"
document.write "<br><br><a href=´#´ onclick=´VBScript: call WB.ExecWB(6,1)´><img src=BoutonImprimer.gif title=´Cliquez ici pour imprimer la page´ /></a><br>"
Le problème, c´est que je souhaiterai que le clic sur l´image imprime la page en format paysage.
Je cherche sur le net, j´ai trouvé "size:landscape" à mettre dans le code CSS, mais apparamment, l´impression en VBScript ne fait pas attention au Css
Voila j´espère que c´est clair, et merci de votre aide.
Je conseillerai plutôt de l´écrire en javascript...
Parce que si le client a le javascript désactivé, il a un bouton "imprimer" qui lui sert à rien...
Bref, question accessibilité, autant l´écrire en javascript. ![]()
En fait, j´suis un peu condamné à l´écrire en VbScript car tout le reste est en VBS. ![]()
Changer tout ca en Javascript, c´est vrai que ca serait + pratique, mais trop long, et j´suis un peu pressé par le temps.
Deepblue
En fait le event=onload semble effacer tout ce qu´il y´a à l´écran précédemment, donc le lien n´apparait plus ![]()
Merci kan meme de votre aide.
Pour l´instant, je cherche encore comment imprimer en paysage avec WB.ExecWB.
En CSS, tous les navigateurs ne semblent pas compatibles pour :
@page :{size:landscape;}
Bonne nouvelle, j´ai diminué la taille de police, et plus besoin de chercher à imprimer en paysage ! ![]()