Druck-Pdf mit javascript-embed-tag

Ich habe eine PDF Datei und ich versuche, drucken Sie es über Javascript. Ich habe versucht, diese embed-trick: Silent drucken einer eingebetteten PDF-Datei jedoch die drucken-Funktion wird nie verfügbar, es ist immer undefiniert.

Habe ich versucht das Iframe-trick mit diesem code:

function printPDF() {
if(document.getElementById("pdfDocument").contentWindow.document.readyState === "complete") {   
    document.getElementById("pdfDocument").focus();
    document.getElementById("pdfDocument").contentWindow.print();
} else {
    setInterval(printPDF(), 1000);
}
}

(pdfDocument-ist die ID vom iframe) Dies tut, öffnet den drucken-Dialog, sondern drucken eine leere Seite. Ich würde gerne das embed-tag Weg zur Arbeit. Aber warum ist die print-Funktion wird nicht immer verfügbar sein?

Meisten Beiträge zu diesem Thema sind schon ziemlich alt. Was ist die beste HTML5/jQuery Weg, es zu tun? (oder einfach nur regelmäßige JS an dieser Stelle)

EDIT:

hier der JS-code für das embed-tag:

function printPDF() {
alert(document.getElementById("pdfDocument").print);
//Wait until PDF is ready to print    
 if (typeof document.getElementById("pdfDocument").print == 'undefined') {
     setTimeout(function(){printPDF();}, 1000);
 } else {
     var x = document.getElementById("pdfDocument");
     x.print();
 }
}

Hält diese änderung "undefined" jeder zweite. Die option Drucken ist nicht verfügbar. Irgendwelche Ideen?

Um es klarzustellen: Sie drucken möchten, in einem iframe, den Sie drucken möchten, stumm, oder beides?
Entweder/ alle LOL, alles an dieser Stelle!
:S wie wissen Sie drucken immer "undefined" zurückgibt, Sie haben keine return-Anweisungen?
Ach ja, und ein jsFiddle helfen würde...
Ich weiß, das ist sehr alt, aber... hat das jemand anderes bemerken, dass setInterval(printPDF(), 1000); ist die Einstellung der Intervall auf die return-Ergebnis von printPDF()? Es geschieht, um zu arbeiten, da Sie erstellt haben, eine rekursive Funktion, aber es ist eigentlich nicht die Nutzung der Intervall...

InformationsquelleAutor mmaceachran | 2013-09-16

Schreibe einen Kommentar