*/ /** * Namespace */ namespace eSM_isotope_custom\Pdf; /** * Include required tcpdf config files */ require_once(TL_ROOT . '/system/modules/eSM_isotope_custom/config/tcpdf.php'); require_once(TL_ROOT . '/vendor/tecnickcom/tcpdf/tcpdf.php'); class ESMPDF extends \TCPDF { public function Header() { // Header // get the current page break margin $bMargin = $this->getBreakMargin(); // get current auto-page-break mode $auto_page_break = $this->getAutoPageBreak(); // disable auto-page-break $this->SetAutoPageBreak(false, 0); // set bacground image // restore auto-page-break status $this->SetAutoPageBreak($auto_page_break, $bMargin); $this->SetMargins(0,0,0); $this->SetFooterMargin(0); $this->Image(TL_ROOT . '/files/themes/affentaler_2017/assets/images/base/pdf_header.png', 15, 10,180,0,'','','T',true,300); //$this->Image(TL_ROOT . '/files/themes/affentaler_2017/assets/images/base/affentaler_logo.png', 75, 15,60,0,'PNG','','T',true,300); $this->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $this->SetFooterMargin(PDF_MARGIN_FOOTER); } // Page footer public function Footer() { // Footer // get the current page break margin $bMargin = $this->getBreakMargin(); // get current auto-page-break mode $auto_page_break = $this->getAutoPageBreak(); // disable auto-page-break $this->SetAutoPageBreak(false, 0); // set bacground image // restore auto-page-break status $this->SetAutoPageBreak($auto_page_break, $bMargin); $this->SetMargins(0,0,0); $this->SetFooterMargin(0); $this->RoundedRect(15, 277, 180, 10, 4.0, '0101', 'F', array('width' => 0.2, 'cap' => 'butt', 'join' => 'miter', 'dash' => 1, 'color' => array(35, 52, 75, 13)), array(13,25,52,0)); $this->SetTextColor(80,38,100,32); $this->SetXY(15, 277); $this->CreateCell(180, 10, 'www.affentaler.de', 0, 15, '', 'C', PDF_FONT_NAME_DATA); // $this->Image(TL_ROOT . '/files/themes/gengenbach_v1/assets/images/pdf/expertise_papier_footer.jpg', 0, 278,210,0,'JPG','','T',true,300); $this->SetMargins(PDF_MARGIN_LEFT, PDF_MARGIN_TOP, PDF_MARGIN_RIGHT); $this->SetFooterMargin(PDF_MARGIN_FOOTER); } public function CreateTextBox($textval, $x = 0, $y = 0, $width = 0, $height = 0, $fontsize = PDF_FONT_SIZE_MAIN, $fontstyle = '', $align = 'L', $font = PDF_FONT_NAME_MAIN) { $margins = $this->getMargins(); $this->SetFont($font, $fontstyle, $fontsize); if (!strlen($y)) { $this->SetX($x+$margins['left']); } else { $this->SetXY($x+$margins['left'], $y); } // Start clipping. $this->StartTransform(); if (!strlen($y)) { $x = $x+$margins['left']; $y = $y+$margins['top']; $this->SetXY($x, $y); } else { $x = $x+$margins['left']; $this->SetX($x); } if (!$height) { $pdf2 = clone $this; $pdf2->setPrintHeader(false); $pdf2->setPrintFooter(false); $pdf2->AddPage(); $pdf2->Cell($width, $height, $textval, 0, false, $align); $height = $pdf2->GetY(); unset($pdf2); } // Draw clipping rectangle to match cell. $this->Rect($x, $y, $width, $height, 'CNZ'); $this->Cell($width, $height, $textval, 0, false, $align); // Stop clipping. $this->StopTransform(); } public function lbr($fltNo=1) { $this->SetY($this->GetY()+(($this->getFontSize()*$this->getCellHeightRatio())*floatval($fltNo))); } public function CreateHTMLBox($htmlVal, $x = 0, $y = 0, $width = 0, $height = 0, $fontsize = PDF_FONT_SIZE_MAIN, $fontstyle = '', $align = 'L', $font = PDF_FONT_NAME_MAIN) { $margins = $this->getMargins(); $this->SetFont($font, $fontstyle, $fontsize); // Start clipping. $this->StartTransform(); if (!strlen($y)) { $x = $x+$margins['left']; $y = $y+$margins['top']; } else { $x = $x+$margins['left']; } if (!$height) { $pdf2 = clone $this; $pdf2->setPrintHeader(false); $pdf2->setPrintFooter(false); $pdf2->AddPage(); $pdf2->writeHTMLCell($width, $height, 0, 0, $htmlVal, 0, 1, false, true, $align); $height = $pdf2->GetY(); unset($pdf2); } // Draw clipping rectangle to match html cell. $this->Rect($x, $y, $width, $height, 'CNZ'); // Output html. $this->writeHTMLCell($width, $height, $x, $y, $htmlVal, 0, 0, false, true, $align); // Stop clipping. $this->StopTransform(); } public function CreateCell($w, $h = 0, $txt = '', $ln = 0, $fontsize = PDF_FONT_SIZE_MAIN, $fontstyle = '', $align = 'L', $font = PDF_FONT_NAME_MAIN) { $margins = $this->getMargins(); $currFontsize = $this->getFontSize(); $currFontfamily = $this->getFontFamily(); $currFontstyle = $this->getFontStyle(); $x = $this->GetX(); $y = $this->GetY(); $this->SetFont($font, $fontstyle, $fontsize); // Start clipping. $this->StartTransform(); if (!$h) { $h = ($this->getFontSize()*$this->getCellHeightRatio()); } // Draw clipping rectangle to match html cell. $this->Rect($x, $y, $w, $h, 'CNZ'); $this->Cell($w,$h,$txt,0,$ln,$align); $this->SetFont($currFontfamily, $currFontstyle, $currFontsize); // Stop clipping. $this->StopTransform(); if (!$ln) { $this->SetY($this->GetY()); } } public function CreateMultiCell($w, $h = 0, $txt = '', $ln = 0, $fontsize = PDF_FONT_SIZE_MAIN, $fontstyle = '', $align = 'L', $font = PDF_FONT_NAME_MAIN) { $currFontsize = $this->getFontSize(); $currFontfamily = $this->getFontFamily(); $currFontstyle = $this->getFontStyle(); $this->SetFont($font, $fontstyle, $fontsize); if (!$h) { $pdf2 = clone $this; $pdf2->setPrintHeader(false); $pdf2->setPrintFooter(false); $pdf2->AddPage(); $pdf2->MultiCell($w,$h,$txt,0,$align,false,1,0,0); $h = $pdf2->GetY(); unset($pdf2); } $this->MultiCell($w,$h,$txt,0,$align,false,$ln); if (!$ln) { $this->SetY($this->GetY()+$h-($this->getFontSize()*$this->getCellHeightRatio())); } // $this->SetFont($currFontfamily, $currFontstyle, $currFontsize); } }