J'ai une page Web avec PDF incorporée dessus. Mon code ressemble à ceci:
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%">
</embed>
J'ai ce code javascript pour imprimer mon PDF:
function printDocument(documentId) {
//Wait until PDF is ready to print
if (typeof document.getElementById(documentId).print == 'undefined') {
setTimeout(function(){printDocument(documentId);}, 1000);
} else {
var x = document.getElementById(documentId);
x.print();
}
}
Lorsque ce code est exécuté, le plug-in Acrobat ouvre la boîte de dialogue d'impression bien connue. Quelque chose comme ça:
Deux questions:
Un peu plus d'informations sur mon système:
OS: Windows XP
Navigateur: Internet Explorer 7
Plugin PDF: Acrobat Reader 9
Vous ne pourrez pas imprimer en silence avec du vieux JavaScript simple. Comment aimeriez-vous que votre imprimante commence à imprimer 100000000 pages de noir? Pas une bonne chose. Si vous souhaitez imprimer en mode silencieux et le faire fonctionner pour Internet Explorer uniquement, il existe des contrôles ActiveX qui peuvent le faire. Cela nécessite des paramètres de sécurité plus élevés pour votre page et pour que vos utilisateurs aient vraiment confiance en votre site.
Cela est possible dans un environnement Intranet fiable.
<object id="pdfDoc" style="position:absolute;z-index:-1;" name="pdfDoc" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="900px" height="100%">
<param name="SRC" value="yourdoc.pdf" />
</object>
<input type="button" ... onclick="pdfDoc.printAll();" />
Cela contournera la boîte de dialogue d'impression et enverra directement à l'imprimante par défaut.
Je me demande si vous devez réellement attendre avant d'imprimer - le travail d'impression ne s'en occupera-t-il pas pour vous? Et j'espère vraiment qu'aucun navigateur moderne ne vous permettra (ou n'importe quel site Web d'ailleurs) d'imprimer sans cette boîte de dialogue de confirmation (certains anciens navigateurs le faisaient il y a longtemps).
Vous pouvez le faire dans Firefox en modifiant about:config
. Ajouter print.always_print_silent
et définissez-le sur true
.