public function loadXml(SimpleXMLElement $e) { $template = new Template(); foreach ($e->blocks->children() as $type => $blockNode) { $blockClassName = "\\Tagliatelle\\Model\\Block\\" . ucfirst($type) . "Block"; if (!class_exists($blockClassName)) { throw new RuntimeException("Unsupported block-type: " . $type); } $block = new $blockClassName(); foreach ($blockNode->attributes() as $name => $value) { $setter = 'set' . ucfirst($name); $block->{$setter}($value); } $template->addBlock($block); } return $template; }
<?php require_once __DIR__ . '/../vendor/autoload.php'; use Tagliatelle\Model\Page; use Tagliatelle\Model\Template; use Tagliatelle\Model\Block\TextBlock; use Tagliatelle\Model\Block\Ean13Block; use Tagliatelle\Generator\FpdfGenerator; $page = new Page(); $page->setWidth(200); $page->setHeight(300); $page->setMargin(10, 20, 10, 5); $block = new TextBlock(); $block->setX(10); $block->setY(10); $block->setContent('Hello [name]'); $template = new Template(); $template->setName('Name badge'); $template->addBlock($block); $rows = [['name' => 'Alice', 'nr' => '67890'], ['name' => 'Bob', 'nr' => '12345'], ['name' => 'Carol', 'nr' => '98989']]; $generator = new FpdfGenerator(); $data = $generator->generate($page, $template, $rows); file_put_contents('output.pdf', $pdf);