getEntityManager()->getEntity($entityType, $entityId); $template = $this->getEntityManager()->getEntity('Template', $templateId); $this->getContainer()->get('serviceFactory')->create($entityType)->loadAdditionalFields($entity); if (!$entity || !$template) { throw new NotFound(); } if ($template->get('entityType') !== $entityType) { throw new Forbidden(); } if (!$this->getAcl()->check($entity, 'read') || !$this->getAcl()->check($template, 'read')) { throw new Forbidden(); } $fileName = $entity->get('name') . '.pdf'; $htmlizer = new Htmlizer($this->getFileManager(), $this->getDateTime(), $this->getNumber()); $pdf = new \Espo\Core\Pdf\Tcpdf(); $pdf->setFont('freesans', '', 12, '', true); $pdf->setPrintHeader(false); $pdf->setAutoPageBreak(true, $template->get('bottomMargin')); $pdf->setMargins($template->get('leftMargin'), $template->get('topMargin'), $template->get('rightMargin')); if ($template->get('printFooter')) { $htmlFooter = $htmlizer->render($entity, $template->get('footer')); $pdf->setFooterPosition($template->get('footerPosition')); $pdf->setFooterHtml($htmlFooter); } else { $pdf->setPrintFooter(false); } $pdf->addPage(); $htmlHeader = $htmlizer->render($entity, $template->get('header')); $pdf->writeHTML($htmlHeader, true, false, true, false, ''); $htmlBody = $htmlizer->render($entity, $template->get('body')); $pdf->writeHTML($htmlBody, true, false, true, false, ''); $pdf->output($fileName); exit; } }