11522 sujets

JavaScript, DOM et API Web HTML5

Pages :
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.
Modérateur
Bonjour,
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,
Bonjour parsimonhi,
Je veux,en cliquant sur un bouton , charger un pdf depuis un URL et puis lancer son impression automatiquement. l'imprimante est lié à mon ordinateur et le fichier que je charge se situe sur mon serveur.
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
<a href="#"  style="color:green;" class="imprim">&nbsp; 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)
Modérateur
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).
<!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)
Modérateur
Bonjour,

Cette solution affiche normalement la fenêtre de dialogue d'impression d'un document.

Eventuellement, elle affiche autre chose (ça dépend de ton navigateur et de son paramètrage).

Amicalement,
Modérateur
Bonjour,

Si tu affiches la page avec exactement le code que j'ai donné, et que tu ne cliques pas sur le bouton "imprime", mais à la place tu cliques sur le menu de chrome qui permet l'impression de la page, est-ce que la fenêtre du dialogue d'impression s'affiche ?

Amicalement,
Quand j'affiche la page avec le bouton imprimer et je clique une autre fois sur imprimer il m'affiche la fenetre d'ouvrir la page de nouveau.
Modérateur
Bonjour,

Je te demande d'oublier le bouton "imprimer" qui est dans la page, et d'utiliser le menu "imprimer" du navigateur. Est-ce qu'il marche et affiche la fenêtre de dialogue d'impression ?

Amicalement,
Oui, quand je lance l'impression du document manuellement avec le menu imprimer ou avec ctrl+P la fenetre d'impression s'affiche et je peux imprimer le document.
Modérateur
Bonjour,

Est-ce que la page ci-dessous affiche le dialogue d'impression ?
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<meta name="viewport" content="initial-scale=1.0,user-scalable=yes">
</head>
<body>
<div>Test</div>
<script>
window.print();
</script>
</body>
</html>

Amicalement,
Pages :