/**
  * @return array
  */
 public function exampleAction()
 {
     $pdf = new PdfTransfer();
     $content = new PdfTemplateTransfer();
     $content->setPath('@pdf/content.twig');
     $content->setType(PdfConfig::TEMPLATE_TYPE_TWIG);
     $content->setParameter(['entity' => ['items' => [['name' => 'Item 1', 'price' => 1299], ['name' => 'Item 2', 'price' => 1599]], 'total' => 2898]]);
     $header = new PdfTemplateTransfer();
     $header->setPath('@pdf/header.twig');
     $header->setType(PdfConfig::TEMPLATE_TYPE_TWIG);
     $header->setParameter([]);
     $footer = new PdfTemplateTransfer();
     $footer->setPath('@pdf/footer.twig');
     $footer->setType(PdfConfig::TEMPLATE_TYPE_TWIG);
     $footer->setParameter([]);
     $pdf->setName('test');
     $pdf->setContent($content);
     $pdf->setHeader($header);
     $pdf->setFooter($footer);
     $pdf->setOptions(['Margin' => '1.5cm', 'HeaderHeight' => '5cm', 'FooterHeight' => '5cm']);
     $output = $this->getFacade()->outputPdfFile($pdf);
     return $this->streamedResponse(function () use($output) {
         echo $output;
     }, 200, ['Content-Type' => 'application/pdf']);
 }
 /**
  * @param \Generated\Shared\Transfer\InvoiceTransfer $invoiceTransfer
  * @param array $parameter
  *
  * @return \Generated\Shared\Transfer\PdfTemplateTransfer
  */
 protected function createFooterTemplate(InvoiceTransfer $invoiceTransfer, array $parameter)
 {
     $footerTemplate = new PdfTemplateTransfer();
     $footerTemplate->setPath($this->getFooterPath($invoiceTransfer));
     $footerTemplate->setParameter($parameter);
     $footerTemplate->setType(PdfConfig::TEMPLATE_TYPE_TWIG);
     return $footerTemplate;
 }
Exemple #3
0
 /**
  * @param \Generated\Shared\Transfer\PdfTemplateTransfer $template
  *
  * @throws \Pav\Zed\Pdf\Business\Exception\TemplateRendererNotFoundException
  * @return string
  */
 protected function renderTemplate(PdfTemplateTransfer $template)
 {
     $templateType = $template->getType();
     if ($templateType === PdfConfig::TEMPLATE_TYPE_RAW_HTML) {
         return $template->getRaw();
     }
     if (!array_key_exists($templateType, $this->templateRenderer)) {
         throw new TemplateRendererNotFoundException(sprintf('Template-renderer %s does not exist.', $templateType));
     }
     $templateRenderer = $this->templateRenderer[$templateType];
     return $templateRenderer->render($template);
 }
 /**
  * @param \Generated\Shared\Transfer\PdfTemplateTransfer $pdfTemplate
  *
  * @return string
  */
 public function render(PdfTemplateTransfer $pdfTemplate)
 {
     $loader = new Filesystem($this->config->getTwigTemplatePaths());
     $twig = new Twig_Environment($loader);
     $twig->setExtensions($this->extensions);
     $this->addFilters($twig);
     $this->addFunctions($twig);
     $path = $pdfTemplate->getPath();
     $parameter = $pdfTemplate->getParameter();
     if ($parameter === null) {
         $parameter = [];
     }
     return $twig->render($path, $parameter);
 }