2016-01-12 9 views
7

HTMLページからPDFファイルを生成するためにmPDFライブラリを使用しています。 Firefoxでうまく動作していますが、クロムブラウザに表示されたPDFファイルではありません。クロムブラウザでPDF文書を読み込めませんでした

クロムにPDFを生成中にエラーが発生しました。

Getting error in chrome browser while generating PDF

後これは、人々はクロームの多くの古いバージョンでに実行していた問題である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

を送信する前flush + ob_cleanは、ヘッダを削除してください(または/無地一時的なテキストに設定)とPDFデータの前または後の不良出力のいずれかの形式がありますかどうかを確認します。 –

+0

これはあなたの問題に関連していますか? http://stackoverflow.com/questions/21707575/http-headers-for-chrome – GuyLorenzo

+1

chrome:// plugins/ でchrome PDFビューアを有効にするだけですが、これは完璧な解決策ではありません。 –

答えて

1

を使用してPDFを生成するための私のコードです。この問題が引き続き発生する場合は、次の操作を実行してください。

Google Chromeでは、PDFファイルを表示する2つのオプションがあります。 Chrome PDFビューア(デフォルト)を使用することも、Adobe Readerを使用することもできます

chrome:// plugins(アドレスバーに入力)をチェックできますか?それを有効にするだけで他のPDFビューア(Chrome/Adob​​e)に切り替えることができます。

+5

これはどのように解決されますか?私たちは顧客にこれをするように求めるべきですか? – lloiacono

+1

@lloiacono誰かが持っている。あなたがそれらに尋ねなければ、他の誰かがしなければならないでしょう。問題はChromeにあります。あなたの目的ではありません。 Chromeで開いているすべてのPDFドキュメントでこのメッセージが表示される – Slav

+0

MacとWindowsの両方で、最新のChromeバージョン(60.0.3112.101)でこのエラーが発生します。 Safari/MacとIE11/Windowsが使用するPDFリーダーであればうまく動作します。その他のPDFドキュメントはChromeでも正常に開かれます。私は自分のPDFジェネレータとそれに渡された内容をデバッグするつもりです。 – jorisw

4

これはおそらく生成されたpdfの問題です。 Firefoxで動作する場合は、ファイルをダウンロードして開こうとします。あなたのPCのPDFビューアがのpdfに壊れている場合は、コードを調整する必要があります。私は同じ問題に直面しています。 PDFファイルが破損しているため、Chromeで開くことはできません。

私の答えは、デバッグの旅に行くことができますように願っています。 乾杯。 :D

+0

同じ問題があります。添付ファイルとして生成されたpdfを電子メールで送信すると、電子メールからダウンロードできますが、破損しています。しかし、私は任意のブラウザでファイルを表示する場合、それは正しく開きます。何か案は? –

+0

あなたはどのフレームワークを使用していますか? –

+0

私はMPDFライブラリを使用しています。問題は解決しました。とにかく、ありがとう。 –

1

これは、mPDFなどのhtmlからPDFライブラリを使用している場合にも発生し、ファイルを送信する前にブラウザにHTMLを送信しています。 PDFマークアップを読む前にHTMLを無視する読者が多い - Chromeはそうではない。

たとえば、PHPでは、出力バッファをクリアしてからmPDF:ob_clean()にデータを送信します。

+0

ありがとう、これは私の問題をmpdfで解決します –

0

私の場合、現在のページのhtmlはpdfに送られました(私は単純なテキストエディタでpdfを開くと表示されます)。私にとって

ソリューションヘッダ

ob_clean(); 
flush(); 
header("Content-type:application/pdf"); 
header("Content-Disposition:attachment;filename='downloaded.pdf'"); 
echo $result; 
exit; 
関連する問題