Druck-PDF in Firefox
So drucken Sie eine PDF-Datei in Firefox?
Diese Funktion ist in Chrome aber nicht in Firefox
function print_pdf(url){
var id = 'iframe', html = '<iframe id="'+id+'" src="'+url+'" style="display:none"></iframe>';
$('#main').append(html);
$('#'+id).load(function(){
document.getElementById(id).contentWindow.print();
}
}
Fehler
Error: Permission denied to access property "print"
InformationsquelleAutor der Frage clarkk | 2015-10-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Firefox: Permission denied to access property "drucken"
Dies ist ein bug in firefox. Lokal kann es deaktiviert werden, indem Sie zu
about:config
und setzen Sie die Eigenschaft vonpdfjs.disabled
zu wahren. Einzige mögliche Abhilfe ist die Verwendung eines server-side script und die pdf-Datei ändern. Mit php könnte man verwenden fpdf und einbetten Erweiterungen zu implementieren js (mit derprint()
- Funktion), oder einfach konvertieren Sie die pdf in ein Bild, schicken Sie die url, und drucken Sie es. Könnten Sie FPDI zu ändern, die bestehende pdf-Datei. Ich werde Ihnen ein Beispiel geben, wie ich das zum laufen bekommen mit PHP.Generierung einer PDF-Datei mit inline-javascript (autoprint) mit FPDI und PDF_JS
Jetzt können Sie einfach fügen Sie die erzeugte pdf-Datei auf Ihrer Seite und das enthaltene javascript ruft die
print()
Funktion. Sie haben noch nicht einmal nennen es manuell nicht mehr. Aber in firefox funktioniert das nur mitvisibility: hidden
und nicht mitdisplay: none
.Chrome: Sicherheits-Fehler (cross-origin)
Die pdf-Datei sollte sich auf dem gleichen host. Firefox war okay mit anderen domains in meinen tests, aber chrome hat mir cross-origin-Fehler.
Firefox: die Gedruckte Seite enthält
about:blank
nurErhalten Sie eine leere Seite in firefox (jsfiddle), da es das drucken des iframe, bevor es geladen hat jegliche Inhalte. Genannten Methoden wie
$(document).onload()
wird nicht helfen, da Sie nur warten, bis das DOM geladen undsetTimeout()
kann noch zu Fehlern führen, da Sie nicht wissen, wie lange es dauert, den iFrame zu laden.Können Sie einfach beheben dieses Problem durch die Verwendung von jQuery
load()
. (doc) Dies gibt Ihnen die Möglichkeit, eine callback-Funktion als parameter.Code Beispiel 1
Alternativ können Sie auch direkt erstellen Sie ein jQuery-Objekt und jQuery -
on()
( doc ) beifügen event-handler.Code-Beispiel 2 (jsfiddle)
InformationsquelleAutor der Antwort Horst Jahns
Bearbeiten, Aktualisiert
Versuchen Sie es mit
window.onload
Veranstaltungdocument.createElement()
,onload
VeranstaltungsetTimeout()
mitduration
eingestellt2000
Einstellungsrc
voniframe
nach Anhängen von element zudocument
plnkr http://plnkr.co/edit/mHBNmc5mdM0YJRwRbYif?p=preview
InformationsquelleAutor der Antwort guest271314
PDF-Dateien Javascript-Unterstützung. Ich brauchte zu haben, die auto-print-Funktionen, wenn Sie eine PHP-generierte PDF-Datei erstellt wurde, und ich war in der Lage zu verwenden, FPDF, um es zu arbeiten:
http://www.fpdf.org/en/script/script36.php
InformationsquelleAutor der Antwort vrtech77
@clarkk ich würde empfehlen, etwas stärker wurde, bedeckt von vielen Menschen, mein Vorschlag ist, verwenden Sie http://pdfmake.org/#/ .
Habe ich verwenden diese pdfmake in meinem datatables und es funktioniert absolut perfekt. Halten Sie im Verstand, wenn Sie drucken mehr als 10 000 Zeilen, die aus Tabellen oder etwas laufen, aus dem Speicher des Browsers 🙂
InformationsquelleAutor der Antwort George Plamenov Georgiev
Habe ich nicht verwenden Sie diese für eine Weile, aber das, was ich war zu tun, um das drucken von pdf ' s aus einem iframe...
InformationsquelleAutor der Antwort raphie
Implementieren Sie die Funktion drucken ohne erstellen neuer iframe (nur mit css) zu verhindern, die Sicherheit Probleme:
InformationsquelleAutor der Antwort Pedram
Drucken eine pdf-Datei mit javascript oder jquery
Erstellen Sie einen iframe in html:
Ändern Sie dann die src des iframe und auf laden, drucken es:
Oder, möchten Sie vielleicht versuchen, https://mozilla.github.io/pdf.js/
InformationsquelleAutor der Antwort Gary