Crear una plantilla PDF personalizada🔗
Podemos crear una plantilla personalizada creando un plugin y colocando la nueva plantilla en la carpeta Lib/PlantillasPDF del nuevo plugin.
Requisitos🔗
Las plantillas son código PHP y para realizar este tipo de personalización son necesarios unos mínimos conocimientos de PHP. También es recomendable, aunque no imprescindible, realizar el curso básico de programación.
Proceso🔗
- Creamos un nuevo plugin, por ejemplo MiPlantilla. No olvides el archivo facturascripts.ini
- Creamos la carpeta Lib dentro de nuestro nuevo plugin.
- Creamos a su vez la carpeta PlantillasPDF dentro de la carpeta Lib.
- Creamos un archivo MiPlantilla.php dentro de la carpeta Lib/PlantillasPDF de nuestro nuevo plugin.
Abrimos este nuevo archivo y copiamos este contenido:
<?php
namespace FacturaScripts\Plugins\MiPlantilla\Lib\PlantillasPDF;
class MiPlantilla extends \FacturaScripts\Plugins\PlantillasPDF\Lib\PlantillasPDF\Template1
{
// $model es la factura
public function addInvoiceHeader($model)
{
parent::addInvoiceHeader($model);
$html = 'hola mundo 1';
$this->writeHTML($html);
}
// $model es la factura
public function addInvoiceLines($model)
{
parent::addInvoiceLines($model);
$html = 'hola mundo 2';
$this->writeHTML($html);
}
// $model es la factura
protected function getInvoiceTotals($model): string
{
$html = getInvoiceTotals($model);
$html .= 'hola mundo 3';
return $html;
}
// $model es la factura
public function addInvoiceFooter($model)
{
parent::addInvoiceFooter($model);
$html = 'hola mundo 4';
$this->writeHTML($html);
}
}
A continuación vamos al menú administrador > plugins, y activamos nuestro nuevo plugin. Una vez activado podemos ir al menú administrador > plantillas PDF y ya podremos seleccionar nuestra nueva plantilla desde el selector de plantilla.
Ejemplos🔗
Tiene un ejemplo más detallado y con vídeo en el curso sesiones de programación.
¿Qué podemos personalizar?🔗
Podemos sobreescribir la función addInvoiceHeader() si queremos modificar la cabecera, la función addInvoiceLines() para las líneas o la función addInvoiceFooter() para la parte de abajo.
Problemas frecuentes🔗
Le insistimos en que las modificaciones deben ir en nuevos plugins. Si hace las modificaciones directamente sobre los archivos de PlantillasPDF, estas modificaciones se perderán cuando actualice.