Foros del Web » Programando para Internet » PHP » Zend »

Como puedo des habilitar la salida estándar de Zend

Estas en el tema de Como puedo des habilitar la salida estándar de Zend en el foro de Zend en Foros del Web. Saludos... yo de nuevo molestando... lo que sucede es que cuando voy a crear un PDF dinámico me muestra el siguiente error ¡SE HA PRODUCIDO ...
  #1 (permalink)  
Antiguo 05/12/2011, 13:14
Avatar de andersonmoreno  
Fecha de Ingreso: octubre-2011
Ubicación: armenia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Pregunta Como puedo des habilitar la salida estándar de Zend

Saludos...
yo de nuevo molestando...
lo que sucede es que cuando voy a crear un PDF dinámico me muestra el siguiente error

¡SE HA PRODUCIDO UN ERROR AL CARGAR EL DOCUMENTO PDF!

ya le des habilite en estilo pero aun así continua el error sera que alguien tiene una respuesta de como solucionar este error
este es mi código
Código PHP:
Ver original
  1. $this->_helper->viewRenderer->setNoRender(true);
  2. $this->_helper->viewRenderer->setNeverRender(true);
  3. $this->_helper->Layout->disableLayout();
  4. require_once  '/../library/pdfClass/class.ezpdf.php';
  5.         $pdf = new Cezpdf('a4');
  6.         $pdf->selectFont('/../library/pdfClass/fonts/courier.afm');
  7.         $pdf->ezSetCmMargins(1, 1, 1.5, 1.5);
  8.         $conexion = mysql_connect("localhost", "root", "clave");
  9.         mysql_select_db("base de datos", $conexion);
  10.         $queEmp = "SELECT u.*,c.nombre as cargo, f.firma as firma FROM usuarios u, cargos c, firmas f
  11. WHERE c.idcargos = u.idcargos
  12. AND f.idfirmas = u.idfirmas";
  13.         $resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
  14.         $totEmp = mysql_num_rows($resEmp);
  15.         $ixx = 0;
  16.         while ($datatmp = mysql_fetch_assoc($resEmp)) {
  17.             $ixx = $ixx + 1;
  18.             $data[] = array_merge($datatmp, array('num' => $ixx));
  19.         }
  20.         $titles = array('identificacion' => '<b>IDENTIFICACION</b>',
  21.         'nombres' => '<b>NOMBRES</b>',
  22.         'apellidos' => '<b>APELLIDOS</b>',
  23.         'correo' => '<b>CORREO</b>',
  24.         'direccion' => '<b>DIRECCION</b>',
  25.         'telefeno' => '<b>TELEFONO</b>',
  26.         'firma' => '<b>FIRMA</b>',
  27.         'cargo' => '<b>CARGO</b>');
  28.         $options = array('shadeCol' => array(0.9, 0.9, 0.9),
  29.         'xOrientation' => 'center', 'width' => 500);
  30.         $txttit = "<b>INFORME DE USUARIOS</b>\n";
  31.         $txttit .= "CENTRO PARA EL DESARROLLO DE LA CONSTRUCCION Y LA INDUSTRIA \n";
  32.         $pdf->ezText($txttit, 12);
  33.         $pdf->ezTable($data, $titles, '', $options);
  34.         $pdf->ezText("\n\n\n", 10);
  35.         $pdf->ezText("<b>Fecha:</b> " . date("d/m/Y"), 10);
  36.         $pdf->ezText("<b>Hora:</b> " . date("H:i:s") . "\n\n", 10);
  37.         $pdf->ezStream();
  #2 (permalink)  
Antiguo 05/12/2011, 13:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como puedo des habilitar la salida estándar de Zend

Con las primeras 3 lineas haces eso, deshabilitar la salida de Zend, ahora sí te aparece eso es porque en algún otro lado esta enviando algo de salida, comenta la última línea de tu script (la del ezStream()) y verifica si ves algo de salida en el navegador.

Saludos.
  #3 (permalink)  
Antiguo 05/12/2011, 13:39
Avatar de andersonmoreno  
Fecha de Ingreso: octubre-2011
Ubicación: armenia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Como puedo des habilitar la salida estándar de Zend

Lo que pasa es que si desabilito esta ultima linea de código no se genera el PDF
y se muestran errores en la librería
  #4 (permalink)  
Antiguo 05/12/2011, 13:47
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como puedo des habilitar la salida estándar de Zend

Precisamente esos errores son los que corrompen tu PDF y son los que debes de atacar, ya que aunque no los veas en pantalla son errores al final.
  #5 (permalink)  
Antiguo 05/12/2011, 14:03
Avatar de andersonmoreno  
Fecha de Ingreso: octubre-2011
Ubicación: armenia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Como puedo des habilitar la salida estándar de Zend

ps los errores que me presentan en la libreria
son en la linea 1631
$this->currentFontNum = $this->fonts[$this->currentFont]['fontNum'];
y en la linea 1934
$h = $this->fonts[$this->currentFont]['FontBBox'][3]-$this->fonts[$this->currentFont]['FontBBox'][1];

y no es por nada pero esos errores no los entiendo
  #6 (permalink)  
Antiguo 05/12/2011, 14:41
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como puedo des habilitar la salida estándar de Zend

Pues sin ver cual es el error yo tampoco te podría decir cual es. Lo mejor en esos casos es ya sea deshabilitar el mostrar errores a la hora de generar el PDF o tratar de usar la versión más actual de ezpdf.
  #7 (permalink)  
Antiguo 05/12/2011, 15:30
Avatar de andersonmoreno  
Fecha de Ingreso: octubre-2011
Ubicación: armenia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Como puedo des habilitar la salida estándar de Zend

mira estos son los errores

Notice: Undefined index: in C:\zendServer\www\Sagas\library\pdfClass\class.pdf .php on line 1934

Notice: Undefined index: in C:\zendServer\www\Sagas\library\pdfClass\class.pdf .php on line 1631
  #8 (permalink)  
Antiguo 05/12/2011, 16:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como puedo des habilitar la salida estándar de Zend

Pues como te digo, mejor oculta los notice poniendo: error_reporting(E_ALL ^ E_NOTICE); antes de tu include.

Saludos.
  #9 (permalink)  
Antiguo 06/12/2011, 07:23
Avatar de andersonmoreno  
Fecha de Ingreso: octubre-2011
Ubicación: armenia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Como puedo des habilitar la salida estándar de Zend

Saludos... GatorV
lo que me dijiste me funciono, ya que quito todos los errores mas cuando genero el PDF no me concatena en:
Código PHP:
Ver original
  1. $txttit = "<b>INFORME DE USUARIOS</b>\n\n";
  2.         $txttit .= "CENTRO PARA EL DESARROLLO DE LA CONSTRUCCION Y LA INDUSTRIA \n";
y la tabla se muestra muy pequeña y con nada de contenido
  #10 (permalink)  
Antiguo 06/12/2011, 10:00
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como puedo des habilitar la salida estándar de Zend

Verifica que te genere los datos que quieres, viendo el resultado de $data, y el contenido, ya eso va más alla de Zend y es de tu librería el que genere correctamente.
  #11 (permalink)  
Antiguo 06/12/2011, 14:31
Avatar de andersonmoreno  
Fecha de Ingreso: octubre-2011
Ubicación: armenia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Pregunta Respuesta: Como puedo des habilitar la salida estándar de Zend

Saludos...GatorV
bueno estube analizando lo que me dijiste y buscando una solucion hice esto:
Código PHP:
Ver original
  1. <?php
  2.     require_once  '/../library/pdfClass/class.ezpdf.php';
  3.         $pdf = new Cezpdf('a4');
  4.         $pdf->selectFont('/../library/pdfClass/fonts/courier.afm');
  5.         $pdf->ezSetCmMargins(1, 1, 1.5, 1.5);
  6.         $conexion = mysql_connect("localhost", "root", "");
  7.         mysql_select_db("", $conexion);
  8.         $queEmp = "SELECT u.*,c.nombre as cargo, f.firma as firma FROM usuarios u, cargos c, firmas f
  9. WHERE c.idcargos = u.idcargos
  10. AND f.idfirmas = u.idfirmas";
  11.         $resEmp = mysql_query($queEmp, $conexion) or die(mysql_error());
  12.         $totEmp = mysql_num_rows($resEmp);
  13.         $ixx = 0;
  14.         while ($datatmp = mysql_fetch_assoc($resEmp)) {
  15.             $ixx = $ixx + 1;
  16.             $data[] = array_merge($datatmp, array('num' => $ixx));
  17.         }
  18.         /*$data = new usuariosModel();
  19.         $data->campos();*/
  20.         $titles = array('identificacion' => '<b>IDENTIFICACION</b>',
  21.         'nombres' => '<b>NOMBRES</b>',
  22.         'apellidos' => '<b>APELLIDOS</b>',
  23.         'correo' => '<b>CORREO</b>',
  24.         'direccion' => '<b>DIRECCION</b>',
  25.         'telefeno' => '<b>TELEFONO</b>',
  26.         'firma' => '<b>FIRMA</b>',
  27.         'cargo' => '<b>CARGO</b>');
  28.        
  29.         $options = array('rowGap'=>2,'shadeCol' => array(0.9, 0.9, 0.9),
  30.         'xOrientation' => 'center', 'width' => 1024);
  31.         $pdf->addText(220, 800, 12, "<b>INFORME DE USUARIOS</b>\n\n");
  32.         $pdf->addText(90, 780, 12, "CENTRO PARA EL DESARROLLO DE LA CONSTRUCCION Y LA INDUSTRIA \n");
  33.         $pdf->ezTable($data, $titles, '', $options,'');
  34.         $pdf->addText(20, 100, 12, "<b>Fecha:</b> " . date("d/m/Y"));
  35.         $pdf->addText(20, 80, 12, "<b>Hora:</b> " . date("H:i:s"));
  36.         $pdf->ezStream();
  37.         ?>

lo que estuve observando era que se estaba sobre escribiendo el texto pero solo tube que usar un addText() y problema solucionado, mas ya verifique los campos que mando en la variable $titles aun así no me muestra la tabla con el contenido en su interior que puede que este sucediendo ya que no rende-riza
  #12 (permalink)  
Antiguo 06/12/2011, 15:30
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como puedo des habilitar la salida estándar de Zend

Realiza un var_dump($data) para que veas si te esta dando los resultados que necesitas.
  #13 (permalink)  
Antiguo 06/12/2011, 15:57
Avatar de andersonmoreno  
Fecha de Ingreso: octubre-2011
Ubicación: armenia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Como puedo des habilitar la salida estándar de Zend

mira cuando use el var_dump($data)
hay mismo me apareció el error
¡SE HA PRODUCIDO UN ERROR AL CARGAR EL DOCUMENTO PDF!
  #14 (permalink)  
Antiguo 06/12/2011, 15:59
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como puedo des habilitar la salida estándar de Zend

Sí pero debes de hacerlo comentando la salida del PDF, esto es para verificar que $data tenga los datos que quieres enviar al PDF.
  #15 (permalink)  
Antiguo 07/12/2011, 10:17
Avatar de andersonmoreno  
Fecha de Ingreso: octubre-2011
Ubicación: armenia
Mensajes: 18
Antigüedad: 13 años
Puntos: 0
Respuesta: Como puedo des habilitar la salida estándar de Zend

saludos GatorV...
Mire hice lo que me dijiste y me devuelve todo lo que hay en la tabla usuarios
Código PHP:
Ver original
  1. array(3) { [0]=> array(12) { ["idusuarios"]=> string(1) "1" ["identificacion"]=> string(10) "1094914173" ["nombres"]=> string(8) "ANDERSON" ["apellidos"]=> string(6) "MORENO" ["correo"]=> string(23) "[email protected]" ["direccion"]=> string(23) "BARRIO ZULDEMAIDA 22-21" ["telefeno"]=> string(10) "3165626878" ["idcargos"]=> string(1) "1" ["idfirmas"]=> string(1) "4" ["cargo"]=> string(10) "Instructor" ["firma"]=> string(18) "Destello_solar.jpg" ["num"]=> int(1) }
  2.  [1]=> array(12) { ["idusuarios"]=> string(1) "2" ["identificacion"]=> string(8) "18468299" ["nombres"]=> string(5) "JESUS" ["apellidos"]=> string(5) "PEREZ" ["correo"]=> string(24) "[email protected]" ["direccion"]=> string(30) "BARRIO VISTA HERMOSA MZ F NRO7" ["telefeno"]=> string(10) "3147637108" ["idcargos"]=> string(1) "1" ["idfirmas"]=> string(1) "1" ["cargo"]=> string(10) "Instructor" ["firma"]=> string(10) "Desert.jpg" ["num"]=> int(2) }
  3.  [2]=> array(12) { ["idusuarios"]=> string(1) "3" ["identificacion"]=> string(8) "21922121" ["nombres"]=> string(6) "WILSON" ["apellidos"]=> string(7) "RAMIREZ" ["correo"]=> string(22) "[email protected]" ["direccion"]=> string(10) "MMM 23 M23" ["telefeno"]=> string(5) "23232" ["idcargos"]=> string(1) "1" ["idfirmas"]=> string(1) "1" ["cargo"]=> string(10) "Instructor" ["firma"]=> string(10) "Desert.jpg" ["num"]=> int(3) } }
  #16 (permalink)  
Antiguo 07/12/2011, 10:46
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Como puedo des habilitar la salida estándar de Zend

En ese caso por alguna razón tu librería ezPdf no esta rendereando la tabla, deberías de leer la documentación para ver la causa o el formato que espera.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:01.