Question

J'ai une page Web avec PDF intégré sur elle. Mon code ressemble à ceci:

<embed
    type="application/pdf"
    src="path_to_pdf_document.pdf"
    id="pdfDocument"
    width="100%"
    height="100%">
</embed>

Je le 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é plug-in Acrobat ouvre la boîte de dialogue d'impression bien connue. Quelque chose comme ceci:

PrintDialog

Deux questions:

  • Comment améliorer la façon de détecter que PDF est chargé et prêt à imprimer?
  • Comment éviter de montrer boîte de dialogue d'impression?

Un peu plus d'informations sur mon système:

OS: Windows XP

Navigateur: Internet Explorer 7

PDF Plugin: Acrobat Reader 9

Était-ce utile?

La solution

Tu ne vas pas être en mesure d'imprimer en silence avec le vieux JavaScript plaine. Comment voulez-vous que votre imprimante pour lancer l'impression sur 100.000.000 pages de tout noir. Pas une bonne chose. Si vous souhaitez imprimer en mode silencieux et le faire fonctionner pour Internet Explorer uniquement, il y a des contrôles ActiveX qui il peut le faire. Cela nécessite des paramètres de sécurité plus élevés pour votre page et pour vos utilisateurs de vraiment faire confiance à votre site.

Autres conseils

Ceci est possible dans un environnement de confiance, Intranet.

<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();" />

contournera la boîte de dialogue d'impression et envoyer directement à l'imprimante par défaut.

Je me demande si vous avez réellement besoin d'attendre avant l'impression - ne sera pas la poignée travail d'impression pour vous? Et je l'espère vraiment pas de navigateur moderne vous permettra (ou tout autre site d'ailleurs) d'imprimer sans cette boîte de dialogue de confirmation (certains anciens navigateurs utilisés pour le faire, il y a longtemps).

Vous pouvez le faire dans Firefox en changeant about:config. Ajouter print.always_print_silent et le mettre à true.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top