我用MPDF生成了漂亮的HTML发票,但是当我把它放在服务器上时它没有显示任何内容。
日志显示以下本地(这里是生成工作):
在服务器上生成时,日志显示以下内容(此处显示生成时的空HTML页面,而不是PDF):
以下代码用于在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”,它也不会生成。
有什么想法吗?
答案 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();
}
?>
在我的情况下,我必须将保存文件的文件夹设为可写状态。