i'm trying create many pdf files using boucle , put in specific place , i'm getting error :
dompdf_exception file: c:\wamp\www\leadmarket\vendor\dompdf\dompdf\include\inline_positioner.cls.php:37 message: no block-level parent found. not good.
here code :
for($i = 0 ; $i < 3 ; $i++){ $pdf = new pdfmodel(); $pdf->setoption("papersize", "a4"); //defaults 8x11 $pdfview = new viewmodel($pdf); $pdfview->setterminal(true) ->settemplate('application/annonceur/generer-facture-mensuelle.phtml') ->setvariables(array( 'client' => $i ) ); $html = $this->getservicelocator()->get('viewpdfrenderer')->gethtmlrenderer()->render($pdfview); $eng = $this->getservicelocator()->get('viewpdfrenderer')->getengine(); $eng->load_html($html); $eng->render(); $pdfcode = $eng->output(); file_put_contents('public/folder/file-'.$i'.pdf', $pdfcode); }
dompdf supports rendering single document per instance (issue #1056). until issue resolved you'll need unset dompdf instance , create new one.
it looks you're creating instance per loop of pdfmodel
, viewmodel
, dompdf instance part of class contains loop ($this->getservicelocator...
).
i'm not familiar framework you're using, can't give specific answer. quickest solution not use dompdf instance that's part of servicelocator instance.
replace
$eng = $this->getservicelocator()->get('viewpdfrenderer')->getengine();
with
$eng = new dompdf(); $eng->setoption("papersize", "a4");
as see paper size had set again, , that's drawback. options configured in servicelocator lost.
Comments
Post a Comment