Generación de PDF y Excel

Podemos usar la clase ExportManager para crear archivos PDF o Excel destinados a diversos fines, como albaranes, facturas, pedidos, o presupuestos, así como para generar listados personalizados.

1. Ejemplo: Imprimir una factura en PDF

Usaremos la clase ExportManager para generar un PDF con la factura.

use FacturaScripts\Dinamic\Lib\ExportManager;

// Creamos una instancia de FacturaCliente
$factura = new FacturaCliente();

// Cargamos los datos de la factura con código 123
if ($factura->loadFromCode(123)) {
    // La factura 123 existe

    // Creamos una instancia de ExportManager
    $export = new ExportManager();
    $export->newDoc('PDF');

    // Añadimos una página con la factura utilizando el método addBusinessDocPage()
    $export->addBusinessDocPage($factura);

    // Obtenemos el contenido del PDF generado
    $pdfContent = $export->getDoc();

    // Podemos almacenar el PDF según sea necesario
    if (file_put_contents('nombre_del_archivo.pdf', $pdfContent)) {
        // Archivo PDF generado correctamente
    } else {
        // Ha ocurrido un error al guardar el archivo PDF
    }

    // Si estamos en un controlador, podemos devolver el PDF directamente al navegador
    $this->setTemplate(false);
    $export->show($this->response);
}

2. Ejemplo: Imprimir un listado en Excel

Podemos usar la clase ExportManager para generar un Excel e incluirle un listado.

use FacturaScripts\Dinamic\Lib\ExportManager;

// Creamos una instancia de ExportManager
$export = new ExportManager();
$export->newDoc('XLS');

// Obtenemos todos los clientes
$clientes = Cliente::all();

// Configuramos las columnas del listado de clientes
$columns = ['Código', 'Nombre', 'Teléfono', 'Email'];

// Creamos un array para almacenar las filas de datos de clientes
$rows = [];

// Recorremos todos los clientes y agregamos sus datos a las filas
foreach ($clientes as $cliente) {
    $rows[] = [$cliente->codcliente, $cliente->nombre, $cliente->telefono1, $cliente->email];
}

// Agregamos una página con una tabla que enumera los datos de los clientes
$export->addTablePage($columns, $rows, [], 'Listado de Clientes');

// devolvemos el Excel al navegador
$export->show($this->response);

Crear un PDF, Excel o CSV

Con la clase ExportManager, podemos crear PDFs, Excel o archivos csv. Solamente debemos indicar el tipo al llamar al método newDoc():

$export = new ExportManager();
$export->newDoc('PDF'); // XLS para Excel y CSV para archivos csv

Añadir una factura, albarán, pedido o presupuesto

Con la función addBusinessDocPage() de la clase ExportManager podemos añadir al PDF o Excel un documento de compra o venta.

// cargamos un pedido
$pedido = new PedidoCliente(),
$pedido->loadFromCode(1234);

// añadimos el pedido al ExportManager
$export->addBusinessDocPage($pedido);

Añadir otros modelos

Con el método addModelPage() de la clase ExportManager podemos añadir cualquier modelo al PDF o Excel. Nos mostrará todas sus propiedades con sus valores, de forma muy genérica.

// cargamos un producto
$producto = new Producto(),
$producto->loadFromCode(1234);

// añadimos el producto al ExportManager
$export->addModelPage($producto);

Añadimos un listado de un modelo

Con el método addListModelPage() de la clase ExportManager podemos añadir un listado de registros de un mismo modelo. Por ejemplo: un listado de productos.

$model = new Producto();
$where = [];
$orderBy = [];
$offset = 0;
$manager->addModelPage($model, $where, $orderBy, $offset);

Añadir una tabla

Para añadir una tabla al PDF o Excel podemos usar el método addTablePage() de la clase ExportManager.

$manager->addTablePage($headers, $rows);
Cookies
Usamos cookies en nuestro sitio web para brindarte la experiencia más relevante recordando tus preferencias y visitas repetidas. Al hacer clic en "Aceptar", aceptas el uso de TODAS las cookies necesarias.
Copyright (c) 2013-2025 FacturaScripts
0.34404s

Soporte