171 votes

Comment faire apparaître une boîte de dialogue d'impression à l'aide de Javascript ?

J'ai une page avec un lien "Imprimer" qui amène l'utilisateur à une page imprimable. Le client souhaite qu'une boîte de dialogue d'impression apparaisse automatiquement lorsque l'utilisateur arrive sur la page imprimable. Comment puis-je faire cela avec javascript ?

262voto

Mark Points 6429
window.print();  

à moins que vous ne vouliez dire un popup personnalisé.

6 votes

Un peu vieux, mais j'aime ajouter ... window.print();setTimeout("window.close()", 100) ; . Cela permet d'attendre suffisamment longtemps pour que le reste de la page se charge, mais reste ensuite suspendu jusqu'à ce que le bouton d'impression de la boîte de dialogue d'impression soit pressé ou annulé, puis ferme à nouveau l'onglet.

42voto

mmiika Points 3027

Vous pourriez faire

<body onload="window.print()">
...
</body>

22voto

Daryl H Points 202

J'aime bien cela, pour que vous puissiez ajouter les champs que vous voulez et l'imprimer de cette façon.

function printPage() {
    var w = window.open();

    var headers =  $("#headers").html();
    var field= $("#field1").html();
    var field2= $("#field2").html();

    var html = "<!DOCTYPE HTML>";
    html += '<html lang="en-us">';
    html += '<head><style></style></head>';
    html += "<body>";

    //check to see if they are null so "undefined" doesnt print on the page. <br>s optional, just to give space
    if(headers != null) html += headers + "<br/><br/>";
    if(field != null) html += field + "<br/><br/>";
    if(field2 != null) html += field2 + "<br/><br/>";

    html += "</body>";
    w.document.write(html);
    w.window.print();
    w.document.close();
};

2 votes

Ça a marché comme un charme pour moi. Il fallait autoriser les popups dans le navigateur. Je ne suis pas sûr que le "close" soit jamais exécuté, puisque l'onglet ne disparaît jamais.

5voto

Dan Sinclair Points 375

Si vous avez simplement un lien sans gestionnaire d'événement de clic :

<a href="javascript:window.print();">Print Page</a>

5voto

Eli Points 14599

Je fais cela pour m'assurer qu'ils se souviennent d'imprimer en paysage, ce qui est nécessaire pour beaucoup de pages sur beaucoup d'imprimantes.

<a href="javascript:alert('Please be sure to set your printer to Landscape.');window.print();">Print Me...</a>

o

<body onload="alert('Please be sure to set your printer to Landscape.');window.print();">
etc.
</body>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X