Stille Druck eine eingebettete PDF
-
13-09-2019 - |
Frage
Ich habe eine Webseite mit eingebettetem PDF. Mein Code sieht so aus:
<embed
type="application/pdf"
src="path_to_pdf_document.pdf"
id="pdfDocument"
width="100%"
height="100%">
</embed>
Ich habe diesen JavaScript -Code für den Druck meines 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();
}
}
Wenn dieser Code ausgeführt wird, öffnet das Acrobat-Plug-In das bekannte Druckdialog. Etwas wie das:
Zwei Fragen:
- Wie kann man den Weg zur Erkennung verbessern, dass PDF geladen und für den Druck bereit ist?
- Wie vermeiden Sie es, den Dialog mit dem Druck anzuzeigen?
Ein bisschen mehr Informationen über mein System:
OS: Windows XP
Browser: Internet Explorer 7
PDF -Plugin: Acrobat Reader 9
Lösung
Sie werden nicht in der Lage sein, still mit einfachem alten JavaScript zu drucken. Wie möchten Sie, dass Ihr Drucker 100000000 Seiten von All Black ausdruiert? Keine gute Sache. Wenn Sie still drucken und nur für Internet Explorer funktionieren lassen möchten, gibt es ActiveX -Steuerelemente, die dies tun können. Dies erfordert höhere Sicherheitseinstellungen für Ihre Seite und Ihre Benutzer, um Ihrer Website wirklich zu vertrauen.
Andere Tipps
Dies ist in einer vertrauenswürdigen, intraneten Umgebung möglich.
<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();" />
Dadurch wird das Dialogfeld Drucken umgehen und direkt an den Standarddrucker gesendet.
Ich frage mich, ob Sie tatsächlich vor dem Drucken warten müssen - wird der Druckauftrag nicht für Sie erledigt? Und ich hoffe wirklich, dass Ihnen kein moderner Browser (oder auf einer Website) ohne diesen Bestätigungsdialog drucken kann (einige alte Browser haben dies vor langer Zeit dazu getan).
Sie können dies in Firefox tun, indem Sie sich ändern about:config
. Hinzufügen print.always_print_silent
und setzen es auf true
.