11528 sujets
JavaScript, DOM et API Web HTML5
Bonjour,
1) Règle : depuis la nuit des temps, imprimer quelque chose ne marche jamais du premier coup. Il faut du bol !
2) Ta question est imprécise. Veux-tu imprimer quelque chose sur une imprimante reliée au serveur ou sur une imprimante reliée à un ordinateur d'un utilisateur ? Est-ce un utilisateur quelconque, ou bien un utilisateur qui utilise un ordinateur sur lequel tu peux installer quelque chose ? Veux-tu déclencher ton impression automatiquement, ou bien suite à une action de l'utilisateur (qui appuierait par exemple sur un bouton) ?
Tout ce que tu peux faire d'à peu près portable et pas trop compliqué, c'est utiliser en javascript window.print() qui va afficher le dialogue de lancement d'une impression à partir de l'ordinateur de l'utilisateur vers l'imprimante de l'utilisateur.
Par exemple, pour lancer le dialogue d'impression dès que la page est affichée dans le navigateur de l'utilisateur, il suffit de rajouter juste avant </body> le code ci-dessous :
Amicalement,
developeurdusamedi a écrit :
S'il vous plait un bout de code javascript qui permet de charger un élément depuis un url et l'envoyer à l'imprimante. J'ai cherché ça sur internet mais tellement j'ai essayé et à chaque fois ça ne marche pas j'ai demandé votre aide.
Merci en avance.
1) Règle : depuis la nuit des temps, imprimer quelque chose ne marche jamais du premier coup. Il faut du bol !
2) Ta question est imprécise. Veux-tu imprimer quelque chose sur une imprimante reliée au serveur ou sur une imprimante reliée à un ordinateur d'un utilisateur ? Est-ce un utilisateur quelconque, ou bien un utilisateur qui utilise un ordinateur sur lequel tu peux installer quelque chose ? Veux-tu déclencher ton impression automatiquement, ou bien suite à une action de l'utilisateur (qui appuierait par exemple sur un bouton) ?
Tout ce que tu peux faire d'à peu près portable et pas trop compliqué, c'est utiliser en javascript window.print() qui va afficher le dialogue de lancement d'une impression à partir de l'ordinateur de l'utilisateur vers l'imprimante de l'utilisateur.
Par exemple, pour lancer le dialogue d'impression dès que la page est affichée dans le navigateur de l'utilisateur, il suffit de rajouter juste avant </body> le code ci-dessous :
<script>
window.print();
</script>
Amicalement,
J'ai trouvé cette solution mais elle ne marche pas chez moi malgré que j'ai vu qu'elle est logique:
1) Création du lien d'impression
2) utilier embed pour récupérer le pdf
3) utiliser javascript pour imprimer le pdf
Modifié par developeurdusamedi (15 Feb 2019 - 09:25)
1) Création du lien d'impression
<a href="#" style="color:green;" class="imprim"> Print</a>
2) utilier embed pour récupérer le pdf
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%" />
3) utiliser javascript pour imprimer le pdf
<script type="text/javascript">
//$(document).ready(function()
//{
$('table#protokoll td a.imprim').click(function()
{
if (confirm("Voulez vous imprimer le document?"))
{
var doc = document.getElementById('pdfDocument');
//Wait until PDF is ready to print
if (typeof doc.print === 'undefined') {
setTimeout(function(){printDocument('pdfDocument');}, 1000);
} else {
doc.print();
}
}
});
</script>
Modifié par developeurdusamedi (15 Feb 2019 - 09:25)
Bonjour,
Tu peux tenter un genre de truc comme ça :
EDIT: tu peux supprimer la balise <embed> (je l'ai mise uniquement pour qu'on puisse visualiser le pdf dès l'affichage initial de la page).
Amicalement,
Modifié par parsimonhi (15 Feb 2019 - 10:13)
Tu peux tenter un genre de truc comme ça :
EDIT: tu peux supprimer la balise <embed> (je l'ai mise uniquement pour qu'on puisse visualiser le pdf dès l'affichage initial de la page).
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0,user-scalable=yes">
</head>
<body>
<button onclick="printPdf('a.pdf')">Imprime</button>
<embed
type="application/pdf"
src="a.pdf"
>
<script>
printPdf = function (pdfUrl) {
if (!this.printedIframe) {
this.printedIframe = document.createElement('iframe');
document.body.appendChild(this.printedIframe);
this.printedIframe.style.display = 'none';
this.printedIframe.onload = function() {
setTimeout(function() {
this.printedIframe.focus();
this.printedIframe.contentWindow.print();
}, 100);
};
}
this.printedIframe.src = pdfUrl;
}
</script>
</body>
</html>
Amicalement,
Modifié par parsimonhi (15 Feb 2019 - 10:13)