/** * Generate PDF Document * * @param integer $pdfTemplateId id of the PDF Template * @param array $substitution array of substitution values * @param string $mailTplKey MailTemplate key * @param boolean $convertToHtmlEntities convert input to HTML entities * * @return mixed array|null */ public function generatePDF($pdfTemplateId, $substitution, $mailTplKey, $convertToHtmlEntities = false) { if (empty($mailTplKey)) { return; } $repo = $this->cx->getDb()->getEntityManager()->getRepository('\\Cx\\Core_Modules\\Pdf\\Model\\Entity\\PdfTemplate'); $pdfTemplates = $repo->findOneBy(array('id' => $pdfTemplateId)); if (!$pdfTemplates || !$pdfTemplates->getHtmlContent()) { return; } $tplContent = $pdfTemplates->getHtmlContent(); \Cx\Core\MailTemplate\Controller\MailTemplate::substitute($tplContent, $substitution, $convertToHtmlEntities); $session = $this->getComponent('Session')->getSession(); $datetime = $this->getComponent('DateTime')->createDateTimeForUser('now')->format('d_m_Y_h_s_i'); $title = $mailTplKey . '.pdf'; $fileName = $mailTplKey . '_' . $datetime . '.pdf'; $pdf = new \Cx\Core_Modules\Pdf\Model\Entity\PdfDocument(); $pdf->SetTitle($title); $pdf->setContent($tplContent); $pdf->setDestination('F'); $pdf->setFilePath($session->getTempPath() . '/' . $fileName); $pdf->Create(); return array('filePath' => $session->getWebTempPath() . '/' . $fileName, 'fileName' => $title); }