/** * @param Page $page */ public function renderPage(Page $page) { $layout = $page->getLayout(); $this->doc->addPage($layout); $this->renderLayout($layout); $this->renderItems($page->getFinalizedItems()); }
/** * @param Page $page */ public function renderItems(Page $page) { $layout = $page->getLayout(); foreach ($layout->getItemFormats() as $id => $format) { $item = $page->item($id); if (!$item->isVisible()) { continue; } switch (true) { case $item->isTypeOf('s-tblock'): if ($item->hasReference() || $item->isPresent()) { $this->renderTextBlockItem($item); } break; case $item->isTypeOf('s-iblock'): if ($item->isPresent()) { $this->renderImageBlockItem($item); } break; case $item->isTypeOf('s-pageno'): if ($page->isCountable() && $item->isForReport()) { $this->renderPageNumberItem($item); } break; case $item->isImage(): $this->renderImageItem($item); break; case $item->isText(): $this->renderTextItem($item); break; case $item->isRect(): $this->renderRectItem($item); break; case $item->isEllipse(): $this->renderEllipseItem($item); break; case $item->isLine(): $this->renderLineItem($item); break; } } }