Je sais que vous pouvez utiliser la fenêtre.Print () pour imprimer la page en cours ... Mais ce que je veux savoir, c'est que je puisse construire un document à l'aide de JavaScript afin de le remplir avec des données et de l'imprimer?
Tout comme vous pouvez avoir HTML / XML comme objet JavaScript, pouvez-vous faire quelque chose de similaire à celui-ci: p> Je ne me soucie pas vraiment de l'ajout de couleurs tout ça Je veux juste formater un document, le peupler avec des données et l'imprimer. Est-ce possible? P> p>
8 Réponses :
Si vous le faites pendant que le document est chargé, vous pouvez utiliser Si la page a fini de chargement, vous pouvez utiliser des fonctions pour manipuler le DOM ou utiliser de préférence une bibliothèque telle que JQuery < / a> ou prototype , puis imprimez le document actuel. P> document.write code> pour écrire le document actuel, puis l'imprimer. P>
impression () appelle essentiellement la boîte de dialogue Imprimer natif pour une fenêtre donnée.
Mais comme vous pensez, cela fonctionnera sur n'importe quelle fenêtre ou (i) Cadre. P>
Ainsi Si vous écrivez du contenu sur un cadre, vous pouvez ensuite appeler ceci pour l'imprimer. P>
window.printPreview();
Imprimer () est une méthode sur l'objet de la fenêtre. Si vous créez un document dans une fenêtre à l'aide de JavaScript, appelez imprimé sur cet objet de la fenêtre, il devrait fonctionner. Exemple modifié à partir de w3schools.com fenêtre ouverte de fenêtre. p> p>
Vous pouvez également utiliser un iframe caché pour imprimer des documents cachés!
Cela ne semble pas fonctionner en chrome ou à l'opéra. Les deux navigateurs semblent imprimer la fenêtre mère lorsque vous êtes auto-empreintes () ou de fenêtre.Print () sont appelés sur une iframe cachée.
En fait, il ne semble pas fonctionner avec un iframe avec une hauteur et une largeur de 0px ...
Le premier lien est cassé.
Ma première pensée:
Vous pouvez créer un IFrame programmatiquement, attribuez le code HTML à imprimé, appelez la fonction imprimer () code> sur le contexte de l'iframe.contentwindow, puis supprimez la iframe de la DOM: p> function printHTML(input){
var iframe = document.createElement("iframe"); // create the element
document.body.appendChild(iframe); // insert the element to the DOM
iframe.contentWindow.document.write(input); // write the HTML to be printed
iframe.contentWindow.print(); // print it
document.body.removeChild(iframe); // remove the iframe from the DOM
}
printHTML('<h1>Test!</h1>');
Ne fonctionne pas dans IE. Si je me souviens bien, vous devez vous concentrer () la fenêtre avant d'l'imprimer, ou quelque chose de similaire.
Pourquoi ne pas simplement faire tout ce qui est invisible pour media = Imprimer et ensuite rendre visible certains blocs avec votre code spécial? P>
Jack, avez-vous essayé la fenêtre.Print () à l'intérieur de l'iframe après avoir chargé le document? P>
Vous devez d'abord mettre le document quelque part dans le DOM. Soit dans une nouvelle fenêtre ou un iframe. Sinon, l'impression imprimera la fenêtre actuelle, pas votre document.
Il y a une solution simple disponible Pas besoin d'écrire une fonction et c'est - window.print ()
où vous souhaitez utiliser il suffit de mettre - onclick = "fenêtre.print ();" p>
Exemple P>
<a href="" onClick="window.print();">Print</a>
Il y a trois approches pour l'impression de deux qui fonctionneront. P>
Imprimez toute la fenêtre: Imprimez uniquement un cadre spécifique: Imprimer A fenêtre.print (); code> fonctionnera. P> li>
fenêtre.parent._frame_Id_.print (); code> fonctionnera. P> LI>
DocumentfraGment code> ne fonctionnera pas (au moins dans Firefox):
Document.createDocumentFragment (). Imprimer (); // non défini code> p> li>
ol>