Les cuento que estoy tratando de generar un pdf, tal cual los hace la función vista_pdf que está en el ci), pero invocando dicha función luego de atrapar el evento de un cuadro.
Por ejemplo:
function evt__cuadro__vista_pdf($datos){
$this->get_relacion()->cargar($datos);
$this->vista_pdf();
}
function vista_pdf(toba_vista_pdf $salida) {
…
}
Pero solo logro imprimir un montón de caracteres raros en pantalla.
eso es probablemente porque no se estan enviando los headers correctos al cliente, entonces interpreta el binario pdf como si fuera texto, cuando no lo es.
Lo que podes hacer es definir el evento como salida_pdf de manera que la misma solicitud_web se encargue de enviar los headers correctos, otra manera es retrasando el envio de headers de la operacion y enviandolos manualmente vos, de forma que esten disponibles para la salida pdf.
Lo que si debes tener en cuenta, es que los metodos vista_pdf… reciben como parametro un objeto de clase toba_vista_pdf… el cual vas a tener que crear a mano.
Hola, les comento que funcionó la impresión retrasando los headers y creando el objeto $salida manualmente, pero luego de generar el pdf no funciona ningún botón de evento, por lo tanto hay que recargar la operación para el normal funcionamiento, a que se puede deber esto? al retraso de los headers?
lo mas probable es que se este perdiendo el estado interno de la operacion, tene en cuenta que el pedido de pagina que vos utilizas para enviar el archivo, cuenta como normal para toba y como se mantiene una lista de los eventos enviados al cliente para que no se pueda pedir cualquier verdura, probablemente esa lista se este vaciando.
Lo que podrias hacer es que el evento ese te abra un popup, o al menos que se use otra celda de memoria, de manera de no pisar los datos internos de la operacion.
Lo que podes probar tambien es colocar lo siguiente: