我尝试使用mpdf生成一个简单的pdf。
我使用的是:
1) php 7.1
2) Laravel 5.3
3) mpdf dev-master version
这就是我编写mpdf代码的方法。
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('<h1>Hello world!</h1>');
$mpdf->Output("test.pdf", "D");
但它不会下载并返回给我一些奇怪的回复。但它成功地执行了代码。
CHROME :
FIREFOX :
有人能帮助我吗?有点困难这一整天。
答案 0 :(得分:0)
假设您的代码位于控制器中,您可能必须return
,所以添加return
:
return $mpdf->Output("test.pdf", "D");
如果仍然无效,您可以尝试将其返回浏览器:
return $mpdf->Output("test.pdf", 'I');
旁注:还有一个特定于Laravel的优秀文章,其功能类似于魅力:https://github.com/barryvdh/laravel-dompdf
答案 1 :(得分:0)
执行以下操作:
确保您的项目符合mpdf要求,并且已安装所有依赖项和php库。
需要
ext-mbstring: *
setasign/fpdi: 1.6.*
php: ^5.6 || ~7.0.0 || ~7.1.0
ext-gd: *
psr/log: ^1.0
paragonie/random_compat: ^2.0
需要(开发)
phpunit/phpunit: ^5.0
mockery/mockery: ^0.9.5
squizlabs/php_codesniffer: ^2.7.0
tracy/tracy: ^2.4
phpstan/phpstan: ^0.6.4
以下代码适用于我:
$storage_path = storage_path();
$mypdf = new mPDF(['tempDir' => $storage_path . '/app', 'margin_left' => 0, 'margin_right' => 0,
'margin_top' => 0, 'margin_bottom' => 0, 'margin_header' => 0, 'margin_footer' => 0]);
$mypdf->SetDisplayMode('fullpage');
$mypdf->WriteHTML(file_get_contents($job_letter_css), 1);
$mypdf->WriteHTML($content, 2);
$structure = "./job_letters/{$id}/";
if (file_exists($structure)) {
$file_name = $structure ."job_offer_letter.pdf";
} else {
mkdir($structure, 0777, true);
$file_name = $structure ."job_offer_letter.pdf";
}
$mypdf->Output($file_name, 'F');