Ver Mensaje Individual
  #3 (permalink)  
Antiguo 29/03/2022, 10:13
sergiodueso
 
Fecha de Ingreso: enero-2011
Ubicación: Zaragoza
Mensajes: 98
Antigüedad: 13 años, 3 meses
Puntos: 1
Respuesta: Librería dompdf

Buenas tardes. Os pongo el código

Código PHP:
<?php

//use Mpdf\Mpdf;

if (session_status() == PHP_SESSION_NONE) {
    
session_start();
}

if(isset(
$_POST['idpre'])){
    
// 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 $_POST['idpre'];
$sql_pre "SELECT * FROM presupuestos WHERE id_presupuesto = '".$id_pre."'";
$result_pre mysqli_query($conexion$sql_pre);
$fila_pre mysqli_fetch_assoc($result_pre);

//Necesitamos los datos del cliente
$sql_cli "SELECT * FROM clientes WHERE id_cliente = '".$fila_pre['id_cliente_pre']."'";

$result_cli mysqli_query($conexion$sql_cli);
$fila_cli mysqli_fetch_assoc($result_cli);

//También los datos de la empresa

$sql_empresa "SELECT * FROM empresa";
$resul_empresa mysqli_query($conexion$sql_empresa);
$fila_empresa mysqli_fetch_assoc($resul_empresa);
$ruta_logo ="../img/";
ob_start();

?>
<!DOCTYPE html>
<html lang="es">
<head>
    <meta charset="UTF-8">
    <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.css">-->
    <!--<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">-->

<!-- Optional theme -->
<!--<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">-->
    <link rel="stylesheet" href="../css/bs/bootstrap.min.css">


<!-- Optional theme -->
<link rel="stylesheet" href="../css/bs/bootstrap-theme.min.css">


    <title>Imprimir presupuesto</title>
    <style>
        hr {
           height: 3px;
           background-color: red;
           margin-left: 10px;
           margin-right: 10px;
}
    </style>
</head>
<body>
    <!-- Comenzamos diseñando el prespuesto -->
    <div class="container-fluid" style="font-size: 12px;">
    
        <div class="row">
            <img style="width: 300px; height: 100px;" src="<?php echo $ruta_logo.$fila_empresa['logo'];?>">
        </div>
            <div class="row" style="margin-right: 10px; margin-top: 20px; width: 100%;">
                <div class="col-xs-12" style="margin-left: 0px !important;">
                    <table  class="table mt-3" style="border-style: solid;">
                        <tr>
                            <td>
                                <span><?php echo $fila_empresa['nombre'];?></span>
                                <br>
                                <span>Cif: <?php echo $fila_empresa['cif'];?></span>
                                <br>
                                <span><?php echo $fila_empresa['direccion'];?></span>
                                <br>
                                <span><?php echo $fila_empresa['tel'];?></span>
                                <br>
                                <span><?php echo $fila_empresa['email'];?></span>
                            </td>
                            <td class="text-right">
                                <span><?php echo $fila_cli['nombre'];?></span>
                                <br>
                                <span><?php echo $fila_cli['direccion'];?></span>
                                <br>
                                <span><?php echo $fila_cli['telefono'];?></span> 
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
       
        <!-- Aquí va el número de presupuesto y la fecha -->
        <div class="row" style="margin-right: 20px; margin-left: 20px; text-align:center;">
            <div class="col-xs-4 col-xs-offset-4" style="border-style: solid; text-align:center;">
                <span>Número presupuesto: <span class="font-weight-bold"><?php echo $fila_pre['numero_presupuesto'];?></span></span>
                <br>
                <span>Fecha Presupuesto: <span class="font-weight-bold"><?php echo $fila_pre['fecha_presupuesto'];?></span></span>
            </div>
        </div>
        <!-- vamos ha hacerlo con rows y cols -->
        <!-- Primero los encabezados -->
       
            <div class="row" style="margin-top: 10px; margin-right: 10px; margin-left: 10px; background-color: blue; color: white; 
            font-size: 14px; font-weight:bold; line-height: 30px;">
                <div class="col-xs-10">
                    <span>Descripción</span>
                </div>
                <div class="col-xs-2">
                    <span>Precio</span>
                </div>
            </div>
            <?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)){
                    
?>
                    <div class="row" style="margin-top: 10px; margin-right: 10px; margin-left: 10px; font-size: 12px;">
                        <div class="col-xs-10"><p><?php echo nl2br($fila_detalle['descripcion']);?></p></div>
                        <div class="col-xs-2" style="page-break-inside:avoid !important;"><span style="page-break-inside:avoid !important;"><?php echo number_format($fila_detalle['precio'], 2',''.').'€'?></span></div>
                    </div>
                    <hr style=" height: 3px; background-color: red; margin-left: 10px; margin-right: 10px;">
                <?php    
                
}    
            
            
?>
        <!-- Fin -->
    
        <!-- Aquí va la tabla con los detalles de presupuesto -->
          
        <!-- Aquí los totales -->  

        <div class="row" style="margin-right: 45px;">
            <div class="col-xs-4 col-xs-offset-8" style="font-size: 14px; font-weight: bold; border-style:solid;">
                <table class="table">
                    <tr style="padding: 5px;">
                        <td>Total Presupuesto:</td>
                        <td style="color:red; text-align:right;"><?php echo number_format($fila_pre['total_presupuesto'], 2,',''.').'€';?></td>
                    </tr>
                    <tr>
                        <td>Iva:</td>
                        <td style="color:red; text-align:right;"><?php echo $fila_pre['iva'].'%';?></td>
                    </tr>
                    <tr>
                        <td>Total Iva:</td>
                        <td style="color:red; text-align:right;"><?php echo number_format($fila_pre['total_iva'], 2,',''.').'€';?></td>
                    </tr>
                    <tr>
                        <td>Total Con Iva:</td>
                        <td style="color:red; text-align:right;"><?php echo number_format($fila_pre['total_con_iva'], 2,',''.').'€';?></td>
                    </tr>
                </table>
            </div>
        </div>
    </div>
    
</body>
</html>
<?php
    $html 
ob_get_clean();
    
//echo $html;
    
require_once "../dompdf/autoload.inc.php";
    
$numero_presupuesto $fila_pre['numero_presupuesto'];
    
$nombre_archivo "Presupuesto-" .$numero_presupuesto.".pdf";
    use 
DompdfDompdf;
    
    
$dompdf = new dompdf();
    
$options $dompdf->getOptions();
    
$options->set(array('isRemoteEnabled' => true));
    
$dompdf->setOptions($options);
    
$html .= '<style>
'
.file_get_contents("../css/bs/bootstrap.min.css").'
</style>'
;
    
$dompdf->loadhtml($html);
    
$dompdf->setPaper('A4'"portrait");
    
$dompdf->render();
    
$pdfContent $dompdf->output();
    
$salida= array(
        
'name' => $nombre_archivo,
        
'file' => "data:application/pdf;base64," base64_encode($pdfContent)
    );
    
header('Content-type: application/json');
    echo 
json_encode($salida);

?>
Entonces, al imprimir un registro muy largo, tendría que imprimir descripción y a la derecha el precio, pero no lo hace así, imprime toda la descripción y cuando pasa de página sí imprime a la derecha el precio de ese registro y yo quiero que lo haga al comienzo del registro. Gracias.

Última edición por sergiodueso; 29/03/2022 a las 10:22