2009-05-01 17 views
1

Bei cbjsonline.com, ich versuche, ein PDF in einem iframe drucken automatisch mit Javascript.Wie drucke ich eine PDF-Datei aus einem Iframe?

Derzeit mein Code - (auf dem Onclick der Verbindung verbunden, die die Iframe öffnet) - document.getElementById('fancy_frame').onload = setTimeout('window.print()',2500);

Irgendwelche Vorschläge? Diese Methode funktioniert nur in Safari.

+0

Erhalten Sie Fehler in anderen Browsern? Was sind Sie? – Adam

Antwort

2

Versuchen Sie, einen Funktionszeiger an setTimeout zu übergeben, anstatt einen Ausdruck zu erhalten, der ausgewertet wird.

document.getElementById('fancy_frame').onload = setTimeout(printWindow, 2500); 

// implemented in the HTML that is loaded in 'fancy_frame' 
function printWindow() 
{ 
    window.print(); 
} 
+0

Danke! Das habe ich versucht, aber die Ladezeiten variierten bisher, es hat nicht funktioniert. Außerdem hat IE versucht, das Browserfenster anstelle der PDF zu drucken, und gab ein paar js Fehler. Ich könnte es nur für Firefox und Safari tun. – CodeJoust

0

OK, ich entschied mich, den Benutzer die Seite drucken zu lassen. Ich denke, iFrames mit PDFs sind zu variabel, versuchen mit Javascript zu drucken. Wenn jemand dies versuchen möchte, würde ich das empfehlen. Verwenden Sie den Jquery-Load, der nach Assets sucht, nicht nur nach dem Laden, sondern nach dem Onload-Handler, da die Verzögerung für Adobe-Reader von Computer zu Computer sehr unterschiedlich ist. Versuchen Sie auch, den Iframe vor dem Drucken zu benennen und zu fokussieren (durch den Namen, also iframe.print(), anstelle von window.print()), so dass nicht versucht wird, die aktuelle Seite zu drucken. Es könnte eine bessere Idee sein, nur den Scribd iPaper Viewer für diese Anwendung zu verwenden.