Foros del Web » Programando para Internet » PHP »

aporte y duda fpdf

Estas en el tema de aporte y duda fpdf en el foro de PHP en Foros del Web. Hola a todos. Gracias a la ayuda de varias personas de este foro, estoy a punto de acabar un aporte referente al fpdf en relación ...
  #1 (permalink)  
Antiguo 24/06/2008, 12:22
 
Fecha de Ingreso: junio-2008
Mensajes: 291
Antigüedad: 15 años, 10 meses
Puntos: 9
aporte y duda fpdf

Hola a todos. Gracias a la ayuda de varias personas de este foro, estoy a punto de acabar un aporte referente al fpdf en relación a los reportes de bases de datos. Tan sólo me falta implementar el cambio del color de las palabras. ¿A alguien se le ocurre algo? Gracias a todos.


Código PHP:
<?php
require('fpdf.php');
define('FPDF_FONTPATH','font/');
include(
"conexion.php");

class 
PDF extends FPDF
{
var 
$B;
var 
$I;
var 
$U;
var 
$HREF;

function 
PDF($orientation='P',$unit='mm',$format='A4')
{
    
//Llama al constructor de la clase padre
    
$this->FPDF($orientation,$unit,$format);
    
//Iniciación de variables
    
$this->B=0;
    
$this->I=0;
    
$this->U=0;
    
$this->HREF='';
}

function 
WriteHTML($html)
{
    
//Intérprete de HTML
    
$html=str_replace("\n",' ',$html);
    
$a=preg_split('/<(.*)>/U',$html,-1,PREG_SPLIT_DELIM_CAPTURE);
    foreach(
$a as $i=>$e)
    {
        if(
$i%2==0)
        {
            
//Text
            
if($this->HREF)
                
$this->PutLink($this->HREF,$e);
            else
                
$this->Write(5,$e);
        }
        else
        {
            
//Etiqueta
            
if($e{0}=='/')
                
$this->CloseTag(strtoupper(substr($e,1)));
            else
            {
                
//Extraer atributos
                
$a2=explode(' ',$e);
                
$tag=strtoupper(array_shift($a2));
                
$attr=array();
                foreach(
$a2 as $v)
                    if(
ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3))
                        
$attr[strtoupper($a3[1])]=$a3[2];
                
$this->OpenTag($tag,$attr);
            }
        }
    }
}

function 
OpenTag($tag,$attr)
{
    
//Etiqueta de apertura
    
if($tag=='B' or $tag=='I' or $tag=='U')
        
$this->SetStyle($tag,true);
    if(
$tag=='A')
        
$this->HREF=$attr['HREF'];
    if(
$tag=='BR')
        
$this->Ln(5);
}

function 
CloseTag($tag)
{
    
//Etiqueta de cierre
    
if($tag=='B' or $tag=='I' or $tag=='U')
        
$this->SetStyle($tag,false);
    if(
$tag=='A')
        
$this->HREF='';
}

function 
SetStyle($tag,$enable)
{
    
//Modificar estilo y escoger la fuente correspondiente
    
$this->$tag+=($enable : -1);
    
$style='';
    foreach(array(
'B','I','U') as $s)
        if(
$this->$s>0)
            
$style.=$s;
    
$this->SetFont('',$style);
    
}

function 
PutLink($URL,$txt)
{
    
//Escribir un hiper-enlace
    
$this->SetTextColor(0,0,255);
    
$this->SetStyle('U',true);
    
$this->Write(5,$txt,$URL);
    
$this->SetStyle('U',false);
    
$this->SetTextColor(0);
}
function 
codigo($codigo)
{
      
$codigo"codigo";
    
//Escribir un hiper-enlace
    
$codigo->SetTextColor(0,0,255);
     
$this->SetTextColor(0);
}



}




$pdf=new PDF();
//Primera página
$pdf->AddPage();
$pdf->SetFont('Arial','',20);
$pdf->Write(5,'Catalogo 2008 ');
$pdf->SetFont('','U');
$pdf->SetFont('');
$pdf->AddPage(); 
$result=@mysql_query('select CODI, NOMB, LIBRE from vells',$conexion);  



while(
$row =@mysql_fetch_array($result))    
{    

  
$pdf->WriteHTML('<font color="#7070D0">'.codigo.":".'</font>'.'<I>'.$row['CODI'].'</I>'.'<br>'.'<br>'); 
}   
$pdf->Output();    



$pdf->SetFont('Arial','',20);   
?>
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 18:45.