I am doing below code in Laravel 5.5 with mpdf 8.0
$mpdf = new \Mpdf\Mpdf();
$mpdf->WriteHTML('Hello World');
$mpdf->Output("test","I");
It outputs gibberish/garbage values, seemingly showing pdf file in raw form.
$mpdf->Output($reportPath, 'F');
(saving it to file) and the opening that. It opens the file as expected.die();
after $mpdf->Output("test","I");
it shows the document.Content-type:application/pdf
not being set by default but I have also tried using header("Content-type:application/pdf");
before Output
but of no use. it is still showing Content-Type: text/html; charset=UTF-8
in response header in Network tab of chrome (also tried Firefox).php7.3
just fine, but I have to update it to php7.4
due to some library and multiple application on a single server scenario.die;
at the end of output.die;
after Output
.The goal is to provide some ref. for people encountering same issues in future, since I have spent hours and haven't anything that specifically address such issue.
Ok, so I found out that I can't just rely on $this->mpdf->Output('test.pdf',"I")
to output my result (though it was working previously with the same line) to the browser.
Because for some reason it has started to send Content-Type:text/html
value in Content-Type
header so I had to change that.
I did it as below:
return response($this->mpdf->Output('test.pdf',"I"),200)->header('Content-Type','application/pdf');