/**
  * Erzeugt ein PDF auf Basis der übergebenen Funktion.
  * @param $module
  * @param $action
  * @param $param
  * @param null $filename falls kein Dateiname angegeben wird, wird das PDF direkt im Browser ausgegeben
  * @throws \Exception
  */
 public static function generate($module, $action, $param, $filename = null, $template = true, $margin = 0)
 {
     $druckinhalt = new WrapperControl(null, 'druck');
     $druckinhalt->setModule($module)->setAction($action)->addParams($param);
     $pdf = new \mPDF('de-DE', 'A4');
     $pdf->SetDisplayMode('fullpage');
     // Zeigt eine ganze Seite an, wenn das PDF in Acrobat geöffnet wird
     if ($margin > 0) {
         $pdf->SetTopMargin($margin);
     }
     $pdf->SetFooter('Seite {PAGENO} / {nb}');
     //file_get_contents('https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css') .
     $stylesheet = file_get_contents('templates/print/css/default.css');
     $pdf->WriteHTML($stylesheet, 1);
     if ($template && file_exists('site/Print.template.html')) {
         $vars = ['heading' => Application::getCurrentResponse()->getMetadata()->getHeading()];
         $header = Parser::parse(null, null, $vars, file_get_contents('site/Print.template.html'));
         $pdf->WriteHTML($header, 2);
     }
     $pdf->WriteHTML($druckinhalt->toHtml(), 2);
     if ($filename === null) {
         $pdf->Output($module . $action . '.pdf', 'I');
     } else {
         //$filename = Files::validateFilename($filename);
         $pdf->Output($filename, 'F');
     }
     unset($pdf);
 }
Example #2
0
 /**
  * @param Carne $carne
  * @return \mPDF
  */
 public function gerar(Carne $carne)
 {
     $mpdf = new \mPDF("", 'A4');
     $mpdf->DeflMargin = 3;
     $mpdf->DefrMargin = 3;
     $mpdf->SetTopMargin(3);
     $mpdf->AddPage();
     /**
      * @var $boleto Boleto
      */
     foreach ($carne->getBoletos() as $boleto) {
         $codigoBarras = $this->geradorCodigoBarras->getBarcode($boleto->getLinha(), BarcodeGeneratorSVG::TYPE_INTERLEAVED_2_5, 1, 40);
         $html = $this->twig->render($carne->getBanco()->getLayoutCarne(), ['boleto' => $boleto, 'codigoBarras' => base64_encode($codigoBarras), 'logoBanco' => base64_encode(file_get_contents(GeradorCarne::getDirImages() . 'logocaixa.jpg'))]);
         $mpdf->WriteHTML($html);
         $mpdf->Ln(2);
     }
     return $mpdf;
 }