Foros del Web » Programando para Internet » PHP »

Problemas con FPDF y htmlentities()

Estas en el tema de Problemas con FPDF y htmlentities() en el foro de PHP en Foros del Web. hola a ver si alguien me puede ayudar, Tengo la libreria fpdf que para crear archivos PDF desde php, mi problema es que las "ñ" ...
  #1 (permalink)  
Antiguo 08/08/2008, 15:01
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Problemas con FPDF y htmlentities()

hola a ver si alguien me puede ayudar,

Tengo la libreria fpdf que para crear archivos PDF desde php, mi problema es que las "ñ" y los acentos me los toma con el codigo raro.

por ejemplo, traigo de una BD un texto, y el texto es diseño y me imprime "Diseño Grafico" entonces probe con htmlentities($campo); y lo que me imprime es Diseño Grafico

Entonces... Como hago para imprimir correctamente las eñes y los acentos en un archivo pdf...

Este es mi Codigo:

Código PHP:
<?
include("../../libreria/conexion.php");
conectar();
include(
"../bd.php");
if(!isset(
$_GET[id])){
header("Location: ../consultar/consultar.php");
exit;
}
require(
'../fpdf/fpdf.php');
class 
PDF extends FPDF
{
//Cabecera de página
function Header()
{
    
//Logo y de mas.
    
$this->Image('../../img/logo_fondo_blanco.jpg',10,8,50);
    
$this->Image('../../img/esquina_presupuesto.jpg',160,0,50);
    
//Titulo de Presupuesto
    
    
$this->SetTextColor(51);
    
$this->SetFont('Arial','B',14);
    include(
"../bd.php");
    
$id=$_GET[id];
    
    
$sql=$exportarPresupuesto." where id = $id ";
    
    
$query=mysql_query($sql);
    
    
$fila=mysql_fetch_array($query);
    
    
$fecha=$fila[fecha];
    
$titulo=$fila[titulo];
    
$dirigido=$fila[dirigido];
    
    
$this->Cell(55,80,"".htmlentities($titulo)."",0,0,'C');
    
//Arial bold 15
    
$this->SetFont('Arial','B',10);
    
$this->SetFillColor(51);
    
$this->SetTextColor(255,102);
    
//Movernos a la derecha
    //Fecha
    
    
$this->Cell(100,5,"Fecha: $fecha",0,1,'R');
    
$this->SetFont('Arial','B',10);
    
$this->SetTextColor(51);
    
    
$this->Cell(155,5,"Dirigido A: $dirigido",0,0,'R');
    
//Salto de línea
    
$this->Ln(50);
}

//Pie de página
function Footer()
{
    
//Posición: a 1,5 cm del final
    
$this->SetY(-15);
    
//Arial italic 8
    
$this->SetFont('Arial','I',8);
    
//Número de página
    
$this->Cell(0,10,'Page '.$this->PageNo().'/{nb}',0,0,'C');
}
}
$tipo=$fila[tipo];
$descripcion=$fila[descripcion];
$iva=$fila[iva];
$comen=$fila[comen];
//Creación del objeto de la clase heredada

$pdf=new PDF();
$pdf->AliasNbPages();
$pdf->AddPage();

$pdf->SetFont('Arial','B',12);
$pdf->Cell(30,7,"Hora",1,0,'C');
$pdf->Cell(130,7,"Detalle",1,0,'C');
$pdf->Cell(30,7,"Precio",1,1,'C');

$sql=$consultarDatosPresupuesto." where id_presupuesto = $id ";
$query=mysql_query($sql);

$total=mysql_num_rows($query);

$pdf->SetFont('Arial','',10);

while(
$datos=mysql_fetch_array($query)){
    
$pdf->Cell(30,5,"$datos[cantidad]",1,0,'L');
    
$pdf->Cell(130,5,"$datos[descripcion]",1,0,'L');
    
$pdf->Cell(30,5,"\$ $datos[precio]",1,1,'L');
    
$subtotal+=$datos[precio];
}
$ivaparcial=0;
if(
$iva==1){
    
$ivaparcial=($subtotal 21 ) / 100;
    
$pdf->Cell(30,5,"",0,0,'L');
    
$pdf->SetFont('Arial','B',10);
    
$pdf->Cell(130,5,'Sub Total:',0,0,'R');
    
    
$pdf->SetFont('Arial','',10);
    
$pdf->Cell(30,5,"\$ $subtotal",1,1,'L');
    
    
$pdf->Cell(30,5,"",0,0,'L');
    
$pdf->SetFont('Arial','B',10);
    
    
$pdf->Cell(130,5,'IVA 21 %:',0,0,'R');
    
    
$pdf->SetFont('Arial','',10);
    
$ivaparcial=($subtotal 21) / 100;
    
$pdf->Cell(30,5,"\$ $ivaparcial",1,1,'L');
}
    
$pdf->Cell(30,5,"",0,0,'L');
    
$pdf->SetFont('Arial','B',10);
    
$pdf->Cell(130,5,"Total:",0,0,'R');
    
$pdf->SetFont('Arial','',10);
    
$totalfinal=$subtotal+$ivaparcial;
    
$pdf->Cell(30,5,"\$ $totalfinal",1,0,'L');
    
$pdf->Ln(50);
$pdf->SetFont('Arial','',10);
$pdf->Cell(30,5,"$comen",1,0,'J');
$pdf->Output();
?>
  #2 (permalink)  
Antiguo 08/08/2008, 17:36
 
Fecha de Ingreso: mayo-2006
Ubicación: Madrid
Mensajes: 153
Antigüedad: 18 años
Puntos: 3
Respuesta: Problemas con FPDF y htmlentities()

Es tema de codificación. Prueba aplicando a las cadenas de texto que quieras sacar:

utf8_decode($cadena);
  #3 (permalink)  
Antiguo 09/08/2008, 06:48
(Desactivado)
 
Fecha de Ingreso: enero-2008
Ubicación: Mendoza
Mensajes: 458
Antigüedad: 16 años, 3 meses
Puntos: 2
Exclamación Muchas Gracias

Gracias por respondeter, funciona perfecto....

Gracias
  #4 (permalink)  
Antiguo 09/09/2008, 03:41
Avatar de Freakme  
Fecha de Ingreso: julio-2007
Ubicación: Portugalete
Mensajes: 97
Antigüedad: 16 años, 9 meses
Puntos: 0
Respuesta: Problemas con FPDF y htmlentities()

utf8_decode($cadena);

Pues a mi esto no me funciona... no me soluciona nada, siguen apareciendome caracteres raros.
En la página php que estoy haciendo para que me genere un pdf lee textos desde un xml.
¿Alguna otra solución?

Un saludo.
  #5 (permalink)  
Antiguo 13/08/2009, 03:03
 
Fecha de Ingreso: agosto-2009
Mensajes: 1
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Problemas con FPDF y htmlentities()

A mi me ocurre lo mismo... si pongo utf8_decode($cadena); no me cambia nada, y veo:

AÅ-stralio
AÅ-strio

en lugar de:

Aŭstralio
Aŭstrio

¿alguna ayuda?
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 18:30.