Buenas tardes. El otro día os escribí para preguntaros sobre la librería fpdf.php para crear pdfs. Visto que no hay respuesta, hoy os pregunto por otra librería que estoy usando, Dompdf. Si los registros no son muy largos, lo hace perfecto, pero tengo el problema que si el registro es demasiado largo (que es casi siempre), no me lo corta en la misma página y sigue en la siguiente sino que me corta todo el registro y me deja parte de la hoja anterior en blanco con la cabecera de la tabla sólo. ¿Hay alguna forma de hacer que se corte el texto? Gracias. Os pongo el código.
Código PHP:
Ver original<?php
use Mpdf\Mpdf;
if (session_status() == PHP_SESSION_NONE) {
}
if(isset($_GET['id_pre'])){ // conectare la base de datos
include "../clases/conexion.php";
//require "scripts.php";
if($_SESSION['conectar'] == "conectar"){
$obj= new conectar();
$conexion = $obj->conexion();
}else{
$obj= new conectar();
$conexion = $obj->conexion_1();
}
}
//Necesitamos recuperar los datos del presupuesto
$id_pre = $_GET['id_pre'];
$sql_pre = "SELECT * FROM presupuestos WHERE id_presupuesto = '".$id_pre."'";
//Necesitamos los datos del cliente
$sql_cli = "SELECT * FROM clientes WHERE id_cliente = '".$fila_pre['id_cliente_pre']."'";
//También los datos de la empresa
$sql_empresa = "SELECT * FROM empresa";
$ruta_logo ="../img/";
?>
Código HTML:
Ver original<!DOCTYPE html>
<meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <!--<link rel="stylesheet" type="text/css" href="../css/bootstrap.min.css">-->
Aquí va el archivo bootstrap.min.css para los estilos
<!-- Comenzamos diseñando el prespuesto -->
<div class="container-fluid" style="font-size: 12px;">
<img style="width: 270px; height: 120px;" src="<?php echo $ruta_logo.$fila_empresa['logo'];?>">
<div class="col-sm-12" style="margin-left: 0px !important;"> <table class="table mt-3" style="border-style: solid;"> <span><?php echo $fila_empresa['nombre'];?></span> <span>Cif:
<?php echo $fila_empresa['cif'];?></span> <span><?php echo $fila_empresa['direccion'];?></span> <span><?php echo $fila_empresa['tel'];?></span> <span><?php echo $fila_empresa['email'];?></span> <span><?php echo $fila_cli['nombre'];?></span> <span><?php echo $fila_cli['direccion'];?></span> <span><?php echo $fila_cli['telefono'];?></span>
<!-- Aquí va el número de presupuesto y la fecha -->
<div class="row ml-3 mr-5"> <div class="col-sm-6" style="border-style: solid; text-align:center;"> <span>Número presupuesto:
<span class="font-weight-bold"><?php echo $fila_pre['numero_presupuesto'];?></span></span> <span>Fecha Presupuesto:
<span class="font-weight-bold"><?php echo $fila_pre['fecha_presupuesto'];?></span></span> <!-- Aquí va la tabla con los detalles de presupuesto -->
<!-- Aquí la tabla vieja -->
<table class="table table-bordered mt-3 ml-0" style="font-size: 12px; width:100% !important;"> <!--<thead style="background-color: blue; color: white; font-weight: bold; border-style: solid;">-->
<tr style="background-color: blue; color: white; font-weight: bold; border-style: solid;"> <th class="col-md-6">Descripción
</th> <!--</thead>-->
<?php
$sql_detalles = "SELECT * FROM detalles_presupuesto WHERE id_presupuesto = '".$fila_pre['id_presupuesto']."'";
$resul_detalles = mysqli_query($conexion, $sql_detalles);
while($fila_detalle = mysqli_fetch_assoc($resul_detalles)){
?>
<tr style="font-size: 12px; border-style:solid;"> <td><?php echo $fila_detalle['descripcion'];?></td> <td class="text-center"><?php echo $fila_detalle['cantidad'];?></td> <td><?php echo number_format($fila_detalle['precio'], 2, ',', '.').'€'?></td> <td><?php echo number_format($fila_detalle['subtotal'], 2, ',', '.').'€'?></td> <?php
}
?>
<!-- Aquí los totales -->
<div class="row" style="margin-right: 33px;"> <div class="col-sm-4 offset-8" style="font-size: 14px; font-weight: bold; border-style:solid;"> <span>Total Presupuesto:
<span style="color:red;"><?php echo number_format($fila_pre['total_presupuesto'], 2,',', '.').'€';?></span></span> <span>Iva:
</span><span style="color:red;"><?php echo $fila_pre['iva'].'%';?></span> <span>Total Iva:
</span><span style="color:red;"><?php echo number_format($fila_pre['total_iva'], 2,',', '.').'€';?></span> <span>Total Con Iva:
</span><span style="color:red;"><?php echo number_format($fila_pre['total_con_iva'], 2,',', '.').'€';?></span>
Código PHP:
Ver original<?php
//echo $html;
require_once "../dompdf/autoload.inc.php";
use Dompdf\Dompdf;
$dompdf = new dompdf();
$options = $dompdf->getOptions();
$options->set(array('isRemoteEnabled' => true)); $dompdf->setOptions($options);
$dompdf->loadhtml($html);
$dompdf->setPaper('A4', "portrait");
$dompdf->render();
$dompdf->stream("sergio.pdf", array("Attachment" => false));
?>