<?php
/**
* viabook platform for Contao Open Source CMS
*
* Copyright (C) 2012-2014 eSalesMedia
*
* @package eSM_viabook
* @link http://www.esales-media.de
* @license commercial
*
* @author Benjamin Roth <benjamin@esales-media.de>
*/
/**
* 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);
}
}