Les templates du core sont dans /pdf, on peut les overrider dans /themes/nom_du_theme/pdf/.
Il y a un header.tpl et un footer.tpl qui sont utilisés (partout ?).
Les variables des templates sont générés dans les fichiers de /classes/pdf/
Les composants des templates sont gérés avec d'autres templates :
$tpls = array(
'style_tab' => $this->smarty->fetch($this->getTemplate('invoice.style-tab')),
'addresses_tab' => $this->smarty->fetch($this->getTemplate('invoice.addresses-tab')),
'summary_tab' => $this->smarty->fetch($this->getTemplate('invoice.summary-tab')),
'product_tab' => $this->smarty->fetch($this->getTemplate('invoice.product-tab')),
'tax_tab' => $this->getTaxTabContent(),
'payment_tab' => $this->smarty->fetch($this->getTemplate('invoice.payment-tab')),
'note_tab' => $this->smarty->fetch($this->getTemplate('invoice.note-tab')),
'total_tab' => $this->smarty->fetch($this->getTemplate('invoice.total-tab')),
'shipping_tab' => $this->smarty->fetch($this->getTemplate('invoice.shipping-tab')),
);
$this->smarty->assign($tpls);