2016-01-12 16 views
7

Używam biblioteki mPDF do generowania plików PDF ze strony HTML. Działa dobrze w firefoxie, ale nie wyświetla pliku PDF w przeglądarce Chrome.Nie można załadować dokumentu PDF w przeglądarce Chrome

Otrzymuję następujący błąd podczas generowania pliku PDF w chrome.

Getting error in chrome browser while generating PDF

Poniżej mój kod do generowania plików PDF za pomocą mPDF

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

Spróbuj usunąć nagłówki (lub ustawić go na text/plain tymczasowy) i sprawdzić, czy istnieje jakaś forma złym wyjściem przed lub po danych PDF. –

+0

Czy to może być związane z twoim problemem? http://stackoverflow.com/questions/21707575/http-headers-for-chrome – GuyLorenzo

+1

Po prostu włączam przeglądarkę chrome PDF w chrome: // plugins/ Ale to nie jest idealne rozwiązanie. –

Odpowiedz

1

Jest to problem, ludzie biegali do na znacznie starszej wersji Chrome. Jeśli nadal widzisz ten problem, wykonaj następujące czynności: W przeglądarce Google Chrome masz 2 opcje wyświetlania plików PDF. Możesz użyć przeglądarki Chrome pdf (domyślnie) lub użyć Adobe Reader

Czy możesz sprawdzić chrome: // plugins (wpisać go w pasku adresu)? i przełącz się na inną przeglądarkę plików PDF (Chrome/Adobe), włączając ją!

+5

Jak to jest rozwiązaniem? czy powinniśmy prosić o to naszych klientów? – lloiacono

+1

@lloiacono ktoś musi. Jeśli ich nie poprosisz, ktoś inny będzie musiał. Problem dotyczy Chrome, a nie końca. Zostanie wyświetlony ten komunikat dla wszystkich dokumentów PDF otwieranych w przeglądarce Chrome – Slav

+0

Ten błąd występuje w najnowszej wersji Chrome (60.0.3112.101) na komputerach Mac i Windows. Działa dobrze z Safari/Mac i jakimkolwiek czytnikiem PDF, którego używa IE11/Windows. Inne dokumenty PDF otwierają się dobrze w Chrome. Mam zamiar debugować mój generator PDF i przekazane do niego treści. – jorisw

4

To może być problem z wygenerowanym pdf. Jeśli działa na firefox, pobierz plik i spróbuj go otworzyć. A jeśli przeglądarka pdf w twoim komputerze wypisze uszkodzoną wersję pdf, możesz potrzebować poprawić swój kod. Stoję w obliczu tego samego problemu. Chrome nie otworzy go z powodu uszkodzonego pliku pdf.

Mam nadzieję, że moja odpowiedź pozwoli Ci przejść do etapu debugowania. Pozdrawiam. : D

+0

Ten sam problem tutaj. Kiedy wysyłam plik PDF wygenerowany jako załącznik, można go pobrać z wiadomości e-mail, ale jest uszkodzony. Ale jeśli przeglądam plik w dowolnej przeglądarce, otwiera się on poprawnie. Jakieś pomysły? –

+0

Z którego framework korzystasz? –

+0

Używam biblioteki MPDF. Problem został rozwiązany. W każdym razie dzięki. –

1

Dzieje się tak również w przypadku korzystania z biblioteki html do PDF, takiej jak mPDF, i przed wysłaniem pliku wysyłane jest HTML do przeglądarki. Wielu czytelników ignoruje kod HTML przed odczytaniem znaczników PDF - Chrome tego nie robi.

Na przykład w PHP wyczyść bufor wyjściowy przed wysłaniem danych do mPDF: ob_clean().

+0

dziękuję, to rozwiązuje mój problem z mpdf –

0

W moim przypadku, html bieżącej strony został wysłany w pdf (widzę to, kiedy otwieram pdf za pomocą prostego edytora tekstu).

Rozwiązanie dla mnie flush + ob_clean przed wysłaniem nagłówku

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