stampa in silenzio un PDF incorporato
-
13-09-2019 - |
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:
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
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
.