php - can't create many pdf files using dompdf -


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