MPDF在外部服务器上没有生成任何内容

时间:2014-02-05 20:16:01

标签: php mpdf

我用MPDF生成了漂亮的HTML发票,但是当我把它放在服务器上时它没有显示任何内容。

日志显示以下本地(这里是生成工作):

http://pastebin.com/n3xJujBH

在服务器上生成时,日志显示以下内容(此处显示生成时的空HTML页面,而不是PDF):

http://pastebin.com/HDeSPHse

以下代码用于在Codeigniter中生成PDF:

private function _gen_pdf($html,$paper='A4')
{
    $this->load->library('mpdf53/mpdf');

    $mpdf=new mPDF('utf-8',$paper);
    $mpdf->debug = true;
    $mpdf->WriteHTML($html);
    $mpdf->Output();
} 

创建的HTML如下:http://pastebin.com/b3hFNbT8

需要注意的是,如果我只在$html中添加“test”,它也不会生成。

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

这让我越过了障碍

$mpdf = new \Mpdf\Mpdf(['mode' => 'utf-8', 'tempDir' => __DIR__ . '/custom/tmp']);

创建自定义(这可以是任何内容)目录,如果它告诉实时服务器上的一些权限错误,例如在 aws ubuntu 实例等上...

答案 1 :(得分:0)

我的答案是切换到DomPDF。我从未在外部并行服务器上运行,可能永远不知道为什么......

答案 2 :(得分:0)

我面临着同样的问题。

我尝试了这段代码,但由于mpdf无法正常工作,它给了我一个问题。

<?php

    // Require composer autoload
    require_once __DIR__ . '/vendor/autoload.php';
    
    try {
        $mpdf = new \Mpdf\Mpdf();
        $mpdf->debug = true;
        $mpdf->WriteHTML("Hello World");
        $mpdf->Output();
    } catch (\Mpdf\MpdfException $e) { // Note: safer fully qualified exception 
                                       //       name used for catch
        // Process the exception, log, print etc.
        echo $e->getMessage();
    }

?>

在我的情况下,我必须将保存文件的文件夹设为可写状态。