cacheDirectory = $cacheDirectory; } /** * @param string $html * @param array $options * @return mixed|string * @throws \Mpdf\MpdfException */ public function convertToPdf(string $html, array $options = []) { $options = array_merge($options, ['tempDir' => $this->cacheDirectory]); $mpdf = new Mpdf($options); $mpdf->creator = Constants::SOFTWARE; // some OS do not follow the PHP default settings if ((int) ini_get('pcre.backtrack_limit') < 1000000) { @ini_set('pcre.backtrack_limit', '1000000'); } // reduce the size of content parts that are passed to MPDF, to prevent // https://mpdf.github.io/troubleshooting/known-issues.html#blank-pages-or-some-sections-missing $parts = explode('', $html); for ($i = 0; $i < \count($parts); $i++) { $mpdf->WriteHTML($parts[$i]); if ($i < \count($parts) - 1) { $mpdf->WriteHTML(''); } } return $mpdf->Output('', Destination::STRING_RETURN); } }