48 votes

Comment envoyer un fichier pdf directement à l'imprimante en utilisant JavaScript ?

Comment envoyer un fichier PDF directement à l'imprimante en utilisant JavaScript ?

J'ai trouvé deux réponses sur un forum :

 <embed src="vehinvc.pdf" id = "Pdf1" name="Pdf1" hidden>
<a onClick="document.getElementById('Pdf1').printWithDialog()" style="cursor:hand;">Print file</a>

et

 <OBJECT id = "Pdf2" name="Pdf2" CLASSID="clsid:CA8A9780-280D-11CF-A24D-444553540000" WIDTH="364" HEIGHT="290">
     <PARAM NAME='SRC' VALUE="file.pdf">
</OBJECT>
<a onClick="document.Pdf2.printWithDialog()">Print file</a> 

Mais mon problème est que cela ne fonctionne que sur IE et ne fonctionne pas dans Firefox ou Chrome.

Existe-t-il une solution à ça?

6voto

John Neuhaus Points 653

C'est en fait beaucoup plus facile en utilisant un dataURI, car vous pouvez simplement appeler print sur l'objet fenêtre renvoyé.

 // file is a File object, this will also take a blob
const dataUrl = window.URL.createObjectURL(file);

// Open the window
const pdfWindow = window.open(dataUrl);

// Call print on it
pdfWindow.print();

Cela ouvre le pdf dans un nouvel onglet, puis ouvre la boîte de dialogue d'impression.

4voto

Dhruv Murarka Points 260

Essayez ceci : créez un bouton/lien qui ouvre une page Web (dans une nouvelle fenêtre) contenant uniquement le fichier pdf intégré et imprimez la page Web.

En tête de la page principale :

 <script type="text/javascript">
function printpdf() 
{
myWindow=window.open("pdfwebpage.html");
myWindow.close;  //optional, to close the new window as soon as it opens
//this ensures user doesn't have to close the pop-up manually
}
</script>

Et dans le corps de la page principale :

 <a href="printpdf()">Click to Print the PDF</a>

À l'intérieur de pdfwebpage.html :

 <html>
<head>    
</head>

<body onload="window.print()">
<embed src="pdfhere.pdf"/>

</body>
</html>

0voto

Joe Solutions Points 11

une fonction pour loger le déclencheur d'impression...

 function printTrigger(elementId) {
    var getMyFrame = document.getElementById(elementId);
    getMyFrame.focus();
    getMyFrame.contentWindow.print();
}

un bouton pour donner accès à l'utilisateur...

 (an onClick on an a or button or input or whatever you wish)

<input type="button" value="Print" onclick="printTrigger('iFramePdf');" />
an iframe pointing to your PDF...

<iframe id="iFramePdf" src="myPdfUrl.pdf" style="dispaly:none;"></iframe>

Plus : http://www.fpdf.org/en/script/script36.php

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