Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/03/2009, 03:21
Koden
 
Fecha de Ingreso: marzo-2005
Mensajes: 197
Antigüedad: 19 años, 2 meses
Puntos: 1
Problema con ezPDF

Buenos días y saludos a todos.

Veréis, estoy haciendo una web que tiene que mostrar una tabla con los meses como cabecera y los días del mes en la primera columna (del día 1 al 31) para confeccionar la lista de precios de un grupo en función del día que se le contrate.

He conseguido que me muestre la tabla sin problemas, mediante este script

Código PHP:
<?php
  
include ("assets/php/seguridad.php");
  include (
"assets/php/conn.php");
  include (
"assets/php/classes/class.ezpdf.php");

  function 
cambiaf_a_mysql ($fecha)
  {
    
ereg ("([0-9]{1,2})/([0-9]{1,2})/([0-9]{2,4})"$fecha$mifecha);
    
$lafecha $mifecha[3] . "/" $mifecha[2] . "/" $mifecha[1];
    return 
$lafecha;
  }

  function 
cambiaf_a_normal($fecha)
  {
    
ereg ("([0-9]{2,4})-([0-9]{1,2})-([0-9]{1,2})"$fecha$mifecha);
    
$lafecha $mifecha[3] . "/" $mifecha[2] . "/" $mifecha[1];
    return 
$lafecha;
  }

  
$fecha1 cambiaf_a_mysql ($_GET["startdate1"]);
  
$fecha2 cambiaf_a_mysql ($_GET["startdate2"]);

  
$pdf =& new Cezpdf('a4');

  
$sel_1 "SELECT nombre FROM productos WHERE id_producto='" $_GET["id_producto"] . "'";
  
$que_1 mysql_query ($sel_aux_1$dbh) or die ('I cannot execute the query because: ' mysql_error () . '<br />And the query is: ' $sel_1 '<br />');
  
$arr_1 mysql_fetch_array ($que_1);

  
$pdf->selectFont('assets/php/classes/fonts/Courier.afm');
  
$datacreator = array (
    
'Title' => 'Estadillo de ' $arr_1["nombre"],
    
'Author' => 'Vicente Producciones',
    
'Subject' => 'PDF con Tablas',
    
'Creator' => '[email protected]',
    
'Producer' => 'http://www.vicenteproducciones.com'
  
);

  
$pdf->addInfo($datacreator);

  
$data = array ();

  for (
$i 0$i 31$i++)
  {
    for (
$j 0$j 13$j++)
    {
      if (
$j == 0)
        
$data[$i]['mes0'] = $i 1;
      else
      {
        
$mts mktime (0,0,0,$j,$i+1,date("Y"));
        
$act_aux_day getdate ($mts);
        
$ctrl_var $act_aux_day["weekday"];

    
$sel_2 "SELECT " $i "_" . ($j 1) . " AS campo FROM estadillo WHERE id_producto='" $_GET["id_producto"] . "'";
        
$que_2 mysql_query ($sel_2$dbh) or die ('I cannot execute the query because: ' mysql_error '<br />And the query is: ' $sel_2 '<br />');
        
$arr_2 mysql_fetch_array ($que_2);

        if (
$arr_2["campo"] == "Ocupado")
        {
          if (
$ctrl_var == "Sunday")
            
$data[$i]['mes' $j] = "<b>O</b>";
          else
            
$data[$i]['mes' $j] = "O";
        }
        else if (
$arr_2["campo"] == "Reservado")
        {
          if (
$ctrl_var == "Sunday")
            
$data[$i]['mes' $j] = "<b>R</b>";
          else
            
$data[$i]['mes' $j] = "R";
        }
        else
        {
          if (
$ctrl_var == "Sunday")
            
$data[$i]['mes' $j] = "<b>" $arr_2["campo"] . "</b>";
          else
            
$data[$i]['mes' $j] = $arr_2["campo"];
        }
      }
    }
  }

  
$titles = array(
    
'mes0' => '<b>D\M</b>',
    
'mes1' => '<b>Ene.</b>',
    
'mes2' => '<b>Feb.</b>',
    
'mes3' => '<b>Mar.</b>',
    
'mes4' => '<b>Abr.</b>',
    
'mes5' => '<b>May.</b>',
    
'mes6' => '<b>Jun.</b>',
    
'mes7' => '<b>Jul.</b>',
    
'mes8' => '<b>Ago.</b>',
    
'mes9' => '<b>Sep.</b>',
    
'mes10' => '<b>Oct.</b>',
    
'mes11' => '<b>Nov.</b>',
    
'mes12' => '<b>Dic.</b>'
  
);

  
$pdf->ezText("<b>Tarifas de " $arr_1["nombre"] . "</b>\n",16);
  
$pdf->ezTable($data,$titles,'',array('xPos'=>'center','width'=>530,'cols'=>array('num'=>array('justification'=>'center'))));
  
$pdf->ezText("\n\n\n",10);

  
$sel_3 "SELECT productos.componentes, lectura_escenario.nombre FROM productos, lectura_escenario WHERE id_producto='" $_GET["id_producto"] . "' AND productos.id_lectura_escenario = lectura_escenario.id_lectura_escenario";
  
$que_3 mysql_query ($sel_3$dbh) or die ('I cannot execute the query because: ' mysql_error () . '<br />And the query is: ' $sel_3 '<br />');
  
$arr_3 mysql_fetch_array ($que_3);

  
$pdf->ezText("<b>Componentes:</b> " $arr_3["componentes"], 10);
  
$pdf->ezText("<b>Escenario:</b> " $arr_3["nombre"] . "\n\n"10);
  
$pdf->ezText("\n",10);

  
$pdf->ezText("<b>O:</b> Ocupado"10);
  
$pdf->ezText("<b>R:</b> Reservado\n\n"10);

  
$pdf->ezStream();
El problema lo tengo en estas líneas específicas, ya que con fpdf se como dibujar una determinada línea en un color que le de, pero lo que busco es sustituir las negritas en los domingos por texto en color rojo.
En otras palabras, lo que busco es sustituir estas líneas:

Código PHP:
  $mts mktime (0,0,0,$j,$i+1,date("Y"));
  
$act_aux_day getdate ($mts);
  
$ctrl_var $act_aux_day["weekday"];

  
$sel_2 "SELECT " $i "_" . ($j 1) . " AS campo FROM estadillo WHERE id_producto='" $_GET["id_producto"] . "'";
  
$que_2 mysql_query ($sel_2$dbh) or die ('I cannot execute the query because: ' mysql_error '<br />And the query is: ' $sel_2 '<br />');
  
$arr_2 mysql_fetch_array ($que_2);

  if (
$arr_2["campo"] == "Ocupado")
  {
    if (
$ctrl_var == "Sunday")
      
//Quiero cambiar esta negrita por color rojo
      
$data[$i]['mes' $j] = "<b>O</b>";
    else
      
$data[$i]['mes' $j] = "O";
   }
   else if (
$arr_2["campo"] == "Reservado")
   {
    if (
$ctrl_var == "Sunday")
      
//Quiero cambiar esta negrita por color rojo
      
$data[$i]['mes' $j] = "<b>R</b>";
    else
      
$data[$i]['mes' $j] = "R";
   }
   else
   {
    if (
$ctrl_var == "Sunday")
      
//Quiero cambiar esta negrita por color rojo
      
$data[$i]['mes' $j] = "<b>" $arr_2["campo"] . "</b>";
    else
      
$data[$i]['mes' $j] = $arr_2["campo"];
  } 
El problema que encuentro es que ezPDF no soporta código html (sólo los tags <b>, <i> y <u>) y que para hacer la tabla vuelca el array $data (que es el que contiene los datos) directamente en la función que crea la tabla, de esta forma...

Código PHP:
$pdf->ezTable($data,$titles,'',array('xPos'=>'center','width'=>530,'cols'=>array('num'=>array('justification'=>'center')))); 
Por lo que sigo sin saber cómo podría darle color específicamente a esas celdas...

¿Alguien sabría echarme una mano?


Muchas gracias a todos y un saludo.