2016-01-12 26 views
7

Ich verwende die mPDF-Bibliothek zum Generieren von PDF-Dateien aus der HTML-Seite. Es funktioniert gut in Firefox, aber es ist nicht PDF-Datei im Chrome-Browser anzeigen.Fehler beim Laden des PDF-Dokuments im Chrome-Browser

Ich bekomme folgenden Fehler beim Generieren von PDF in Chrom.

Getting error in chrome browser while generating PDF

Im Anschluss ist mein Code für PDF generieren mPDF mit

ob_clean(); 
header('Content-type: application/pdf'); 
header('Content-Disposition: inline; filename="' . $yourFileName . '"'); 
header('Content-Transfer-Encoding: binary'); 
header('Accept-Ranges: bytes'); 
$mpdf = new PDF('c','A4','','',15, 15,10,14,0,0); 
$mpdf->useOnlyCoreFonts = false; 
$mpdf->SetDisplayMode('real'); 
$mpdf->list_indent_first_level = 0; // 1 or 0 - whether to indent the first level of a list 
$stylesheet = file_get_contents(APPPATH . 'third_party/mpdf/style.css'); 
$mpdf->WriteHTML($stylesheet,1); 
$mpdf->WriteHTML($html); 
$mpdf->Output(); 
+0

Versuchen Sie, die Header zu entfernen (oder es setzen/plain vorübergehend in Text) und sehen, ob es vor oder nach den PDF-Daten jede Form von schlechten Ausgang ist. –

+0

Könnte das mit Ihrem Problem zusammenhängen? http://StackOverflow.com/Questions/21707575/http-headers-for-chrome – GuyLorenzo

+1

ich nur Chrome PDF-Viewer in Chrome aktivieren: // Plugins/ Aber das ist keine perfekte Lösung. –

Antwort

1

Dies ist ein Problem, Menschen wurden in Chrome auf eine viel ältere Version ausgeführt wird. Wenn das Problem weiterhin auftritt, führen Sie folgende Schritte aus:

In Google Chrome haben Sie zwei Optionen zum Anzeigen von PDF-Dateien. Sie können entweder Chrome PDF-Viewer (Standard) verwenden oder Sie können den Adobe Reader

verwenden. Können Sie chrome: // plugins (geben Sie es in der Adressleiste)? und wechseln Sie zu einem anderen PDF-Viewer (Chrome/Adobe), indem Sie ihn einfach aktivieren!

+5

Wie ist das eine Lösung? Sollten wir unsere Kunden darum bitten? – lloiacono

+1

@lloiacono jemand muss. Wenn Sie sie nicht fragen, müsste jemand anderes. Das Problem ist mit Chrome, nicht mit Ihrem Ende. Sie würden diese Nachricht für alle PDF-Dokumente sehen, die auf Chrome öffnen – Slav

+0

Ich erhalte diesen Fehler mit der aktuellsten Version von Chrome (60.0.3112.101) auf Mac und Windows. Funktioniert gut mit Safari/Mac und was PDF Reader IE11/Windows verwendet. Andere PDF-Dokumente werden in Chrome problemlos geöffnet. Ich werde meinen PDF-Generator und die Inhalte debuggen, die an ihn übergeben werden. – jorisw

4

Dies ist möglicherweise das Problem mit generierten pdf. Wenn es auf Firefox funktioniert, laden Sie die Datei herunter und versuchen Sie sie zu öffnen. Und wenn PDF-Viewer in Ihrem PC beschädigt pdf ausgibt, dann müssen Sie möglicherweise Ihren Code optimieren. Ich stehe vor dem gleichen Problem. Chrome wird es wegen der beschädigten pdf nicht öffnen.

Hoffe, meine Antwort wird Sie auf eine Reise des Debuggen gehen lassen. Prost. : D

+0

Das gleiche Problem hier. Wenn ich die als Anlage erzeugte PDF-Datei per E-Mail verschicke, kann sie von der E-Mail heruntergeladen werden, ist jedoch beschädigt. Aber wenn ich die Datei in einem beliebigen Browser anschaue, wird sie korrekt geöffnet. Irgendwelche Ideen? –

+0

Welchen Rahmen verwenden Sie? –

+0

Ich verwende MPDF-Bibliothek. Das Problem ist jetzt gelöst. Trotzdem danke. –

1

Das passiert auch, wenn Sie eine HTML-zu-PDF-Bibliothek wie mPDF verwenden und Sie irgendwie HTML an den Browser senden, bevor Sie die Datei senden. Viele Leser ignorieren das HTML, bevor sie das PDF-Markup lesen - Chrome nicht.

Löschen Sie beispielsweise in PHP den Ausgabepuffer, bevor Sie die Daten an mPDF senden: ob_clean().

+0

danke, das löst mein Problem mit mpdf –

0

In meinem Fall wurde der HTML der aktuellen Seite in der pdf gesendet (ich sehe es, wenn ich die pdf mit einem einfachen Texteditor öffne).

Lösung für mich flush + ob_clean vor Kopf Senden

ob_clean(); 
flush(); 
header("Content-type:application/pdf"); 
header("Content-Disposition:attachment;filename='downloaded.pdf'"); 
echo $result; 
exit; 
Verwandte Themen