<?php
// 1. Carga correcta para dompdf 0.8.3
require_once("dompdf/autoload.inc.php");

// Importamos las clases necesarias
use Dompdf\Dompdf;
use Dompdf\Options;

// 2. Configuración de opciones (Sustituye al antiguo def())
$options = new Options();
$options->set('isRemoteEnabled', true); 
$options->set('isHtml5ParserEnabled', true);
$options->set('defaultFont', 'sans-serif');

// 3. Recuperamos los datos de la URL
$tabla = isset($_GET["tabla"]) ? $_GET["tabla"] : "";
$where = isset($_GET["where"]) ? base64_decode($_GET["where"]) : "1=1";
$order = isset($_GET["order"]) ? base64_decode($_GET["order"]) : "";

if (!$tabla) {
    die("Error: No se especificó la tabla para el reporte.");
}

// 4. Construimos la URL del archivo print de PHPRunner
$nombre_archivo_print = $tabla . '_print.php'; 
$protocol = "http://";
$target_url = $protocol . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) . '/' . $nombre_archivo_print;
$target_url .= "?pdf_mode=1&where=" . urlencode($where) . "&order=" . urlencode($order);

// 5. Captura con CURL (Manteniendo la sesión de XAMPP)
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_COOKIE, http_build_query($_COOKIE, '', '; '));
$html = curl_exec($ch);
curl_close($ch);

if (!$html) die("Error al capturar el reporte de la tabla: " . $tabla);

// 6. Inyección de CSS para formato profesional
$style_fix = '<style>
    @page { margin: 0.8cm; }
    body { font-family: sans-serif; font-size: 11px; }
    table { width: 100% !important; border-collapse: collapse; table-layout: fixed; }
    th, td { border: 0.1pt solid #ccc; padding: 4px; text-align: left; vertical-align: top; }
    .rnr-gridcaption, thead { background-color: #2c3e50 !important; color: white !important; }
    .rnr-buttons, .rnr-printcontrol, button, .no-print { display: none !important; }
</style>';

$html = str_replace('<head>', '<head>' . $style_fix, $html);

// 7. Renderizado con la nueva API de Dompdf
$dompdf = new Dompdf($options); // Usamos la clase con Namespace y pasamos las opciones
$html = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');

$dompdf->loadHtml($html);
//$dompdf->setPaper("A4", "landscape");
$dompdf->setPaper("A4", "portrait");
$dompdf->render();

// Salida al navegador
$dompdf->stream($tabla . "_reporte.pdf", array("Attachment" => false));
?>