samedi 6 novembre 2021

MPDF in Laravel can't output (inline) pdf

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.

Some findings

  • If I use $mpdf->Output($reportPath, 'F'); (saving it to file) and the opening that. It opens the file as expected.
  • If I place die(); after $mpdf->Output("test","I"); it shows the document.
  • My suspicion is, it has something something to do with 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).

Some back-story

  • It used to work on 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.
  • Also start using a sub-domain for my application instead of placing the directories after the domain.

I'm looking for

  • A solution that doesn't require me to place die; at the end of output.
  • Or some clue in on why this has started happening or/and perhaps why I need to place die; after Output.
  • Any other solution.

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.



via Chebli Mohamed

Aucun commentaire:

Enregistrer un commentaire