MPDF pdf 未在任何浏览器中打开,Codeigniter 中未显示错误

Posted

技术标签:

【中文标题】MPDF pdf 未在任何浏览器中打开,Codeigniter 中未显示错误【英文标题】:MPDF pdf is not opening in any browser, no error showing in Codeignitor 【发布时间】:2019-10-02 03:37:55 【问题描述】:

我使用 mpdf 生成动态 pdf,PDF 工作正常,但在在线服务器上,当我尝试在浏览器中预览 pdf 或将其下载到我的电脑时,它显示“无法加载 Pdf”。 我也试过在编辑器中检查它,我没有找到任何错误符号。

Ob_clean(); // not working for me

这是我的代码:-

<?php         
        require_once 'vendor/autoload.php';

        $mpdf = new \Mpdf\Mpdf();

        $mpdf->Writehtml('

            <table style="text-align:center; background: '.$color1.'; color: '.$color2.'; width: 100%">
                <tr>
                    <td style="width: 50%; font-size: 45px;">
                        HI,
                    </td>
                </tr>
                <tr>
                    <td style="width: 100%;">
                        <table style="width: 80%; border: 4px solid #fff;">
                            <tr>
                                <td>I am</td>
                            </tr>
                            <tr>
                                <td style="font-size: 32px;">'.$_POST['input1'].'</td>
                            </tr>
                        </table>
                    </td>
                </tr>
                <tr>
                    <td style="width: 100%;">
                        <table>
                            <tr>
                                <td style="font-size: 20px;">'.$_POST['input2'].'</td>
                            </tr>
                        </table>
                    </td>
                </tr>
            </table>



        ');
        $file_name = "resume.pdf";

        $mpdf->Output($file_name, 'I');
    

?>

【问题讨论】:

【参考方案1】:

Mpdf 需要 PHP 5.4+ 确保提供以下必需的 PHP 模块:

gd mbstring

如果不是在 Linux 中,我们可以使用以下两个命令进行安装(将 7.0 更改为您服务器的 PHP 版本)

sudo apt-get install php7.0-gd
sudo apt-get install php7.0-mbstring

重要:还要检查 resume.pdf 保存为 www-data 的组,并且它具有递归写入权限。 我们可以通过以下命令添加它

sudo chgrp -R www-data folderpathhere/
sudo chmod -R g+w folderpathhere/

【讨论】:

mbstring 和 gd 扩展都已启用,我的 php 版本也是 7.1。我正在尝试修复此问题 3 天,没有显示任何错误。我也在编辑器中检查过。 文件权限呢? 打开 Apache 错误日志..并检查最新的错误..它将主要在 /var/log/apache2/ 文件夹中 这是错误日志中的错误 - PHP 致命错误:第 0 行的 Unknown 中允许的内存大小为 536870912 字节已用尽(尝试分配 400556032 字节) 也检查错误时间...如果是因为pdf解决了关注***.com/questions/415801/…

以上是关于MPDF pdf 未在任何浏览器中打开,Codeigniter 中未显示错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 mpdf 时需要设置 HTTP Header 吗?

mPDF 自动打印问题

Mpdf 不从内联 chrome 浏览器下载 pdf(但显示 pdf)

在 mpdf 中将 pdf 文件输出到浏览器

大型 pdf 文件未在具有 aws 签名 url 的浏览器中打开

mPDF 错误:一些数据已经输出到浏览器,无法发送 PDF 文件