Silencieux imprimer un PDF intégré
j'ai une page Web avec des PDF intégrés 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 bien connue d'impression. Quelque chose comme ceci:
deux questions:
- comment améliorer la façon de détecter que PDF est chargé et prêt pour l'impression?
- Comment éviter d'afficher le dialogue d'impression?
un peu plus d'informations sur mon système:
OS: Windows XP
Browser: Internet Explorer 7
PDF Plugin: Acrobat Reader 9
4 réponses
vous n'allez pas être en mesure d'imprimer silencieusement avec JavaScript simple Vieux. Comment voudriez-vous que votre imprimante commence à imprimer 100000000 pages de tout noir. Pas une bonne chose. Si vous voulez imprimer silencieusement et le faire fonctionner pour Internet Explorer seulement, Il ya des contrôles ActiveX là-bas 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 l'enverra directement à l'imprimante par défaut.
je me demande si vous avez vraiment besoin d'attendre avant d'imprimer -- est-ce que le travail d'impression ne va pas s'occuper de ça 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 ce dialogue de confirmation (certains vieux navigateurs utilisés pour faire cela, il y a longtemps).
vous pouvez faire cela dans Firefox en changeant about:config
. Ajouter print.always_print_silent
et régler à true
.