无法在Chrome浏览器中加载PDF文档

Ket*_*iya 9 php codeigniter mpdf

我正在使用mPDF库从HTML页面生成PDF文件.它在firefox中工作得很好,但它不是在chrome浏览器中显示PDF文件.

我在chrome中生成PDF时出现以下错误.

生成PDF时在Chrome浏览器中出错

以下是我使用mPDF生成PDF的代码

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();
Run Code Online (Sandbox Code Playgroud)

jor*_*isw 7

当您使用 html 到 PDF 库(例如 mPDF)时也会发生这种情况,并且在发送文件之前以某种方式将 HTML 发送到浏览器。许多读者在阅读 PDF 标记之前会忽略 HTML - Chrome 不会。

例如,在PHP,将数据发送到MPDF之前清除输出缓冲区:ob_clean()


小智 6

这可能是生成的pdf的问题.如果它适用于Firefox,请下载该文件并尝试打开它.如果你电脑中的pdf查看器输出损坏的pdf,那么你可能需要调整你的代码.我面临同样的问题.由于pdf损坏,Chrome无法打开它.

希望我的回答能让你进入调试之旅.干杯.:d


Séb*_*uel 5

就我而言,当前页面的html是通过pdf发送的(当我使用简单的文本编辑器打开pdf时就可以看到它)。

发送标头前冲洗 + ob_clean的解决方案

ob_clean();
flush();
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename='downloaded.pdf'"); 
echo $result; 
exit;
Run Code Online (Sandbox Code Playgroud)


小智 0

这是人们在旧版 Chrome 上遇到的问题。如果您仍然遇到此问题,请执行以下操作

在 Google Chrome 中,您有 2 个选项来查看 PDF 文件。您可以使用 Chrome pdf 查看器(默认),也可以使用 Adob​​e Reader

您可以检查 chrome://plugins (在地址栏中输入)吗?只需启用它即可切换到其他 PDF 查看器(Chrome/Adobe)!

  • 这是如何解决的?我们应该要求我们的客户这样做吗? (17认同)
  • @lloiacono 必须有人这么做。如果你不问他们,其他人就必须问。问题出在 Chrome 上,而不是你的一端。对于在 Chrome 上打开的所有 PDF 文档,他们都会看到此消息 (2认同)