Domanda

Ho una pagina web con PDF incorporato su di esso. Il mio codice è simile al seguente:

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

Ho questo codice JavaScript per la stampa il mio 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();
    }
}

Quando questo codice viene eseguito Acrobat plug-in apre la finestra di dialogo di stampa ben noto. Qualcosa di simile a questo:

PrintDialog

Due domande:

  • Come migliorare il modo di rilevare che il PDF è carica e pronta per la stampa?
  • Come evitare di mostrare dialogo di stampa?

Un po 'più di informazioni sul mio sistema:

OS: di Windows XP

Browser: Internet Explorer 7

PDF Plugin: Acrobat Reader 9

È stato utile?

Soluzione

Non si ha intenzione di essere in grado di stampare in silenzio con Plain Old JavaScript. Come vorreste la vostra stampante per iniziare a stampare 100000000 pagine del tutto nero. Non è una buona cosa. Se si desidera stampare in silenzio e farlo funzionare per Internet Explorer solo, ci sono controlli ActiveX là fuori che può farlo. Ciò richiede le impostazioni di sicurezza più elevati per la tua pagina e per gli utenti a fidarsi veramente tuo sito.

Altri suggerimenti

Questo è possibile in un ambiente Intranet supporta.

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

In questo modo ignorare la finestra di stampa e inviare direttamente alla stampante predefinita.

Mi chiedo se effettivamente necessario attendere prima della stampa - il lavoro di stampa non gestirà che per te? E io spero veramente nessun browser moderno vi permetterà (o qualsiasi sito web è per questo) di stampare senza quella finestra di conferma (alcuni vecchi browser utilizzati per farlo, molto tempo fa).

È possibile farlo in Firefox cambiando about:config. Aggiungere print.always_print_silent e impostarlo true.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top