Example #1
0
 /**
  * Add new part to report
  *
  * @param string       $type Part type
  * @param Part\AbstractPart $part Part
  */
 public function addPart($type, Part\AbstractPart $part)
 {
     $this->parts[strtolower($type)] = $part;
     $this->orderedParts[$part->getIdentifier()] = $part;
     $this->calculateStartPosition();
 }
Example #2
0
 /**
  * Constructor
  *
  * @param array $data Data
  */
 public function __construct($data)
 {
     $this->identifier = array_search('data', $this->partIds);
     parent::__construct($data);
 }
Example #3
0
 /**
  * Write Elements into document
  *
  * @param AbstractPart $part Part
  * @param array $data Data
  * @param ArrayIterator $iterator
  *
  * @return boolean
  */
 public function writePDF(AbstractPart $part, array $data, $iterator = null)
 {
     if (count($data) <= 0 || $part->isVisible() === false) {
         return false;
     }
     foreach ($data as $element) {
         // Create new page if overlapping
         if (intval($this->writer->getCurrentPosition() + $element->getHeight()) >= intval($this->writer->getEndPosition())) {
             $this->writer->AddPage($this->report->getPageOrientation());
             $this->writer->setCurrentPosition($part->getStartPosition());
         }
         $this->writer->SetLineWidth($element->getBorderWidth());
         $this->writer->setFillColor($element->getFillColor());
         $this->writer->setTextColor($element->getTextColor());
         $this->writer->SetFont($element->getFont(), $element->getStyle(), $element->getFontSize());
         $this->writer->setXY($element->getPosX() + $this->getReport()->getLeftMargin(), $element->getPosY() + $this->writer->getCurrentPosition());
         $element->writeContent($this->writer, $iterator);
     }
     $newPosition = $this->writer->getCurrentPosition() + $part->getHeight();
     $this->writer->setCurrentPosition($newPosition);
     // Add page jump if set
     if ($part->isPageJump() && !$part instanceof \RevPDFLib\Items\Part\PageHeader) {
         $this->writer->AddPage($this->getReport()->getPageOrientation());
         $this->writer->setCurrentPosition($part->getStartPosition());
     }
     return true;
 }