Foros del Web » Programando para Internet » PHP »

Problema con caracteres al crear PDF desde PHP

Estas en el tema de Problema con caracteres al crear PDF desde PHP en el foro de PHP en Foros del Web. Buenos dias a todo, ante nada quisiera agradecerles a todos por compartir todo el conocimiento con los usuarios mas novatos como yo ya que soluciones ...
  #1 (permalink)  
Antiguo 09/12/2010, 14:48
 
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 15 años, 1 mes
Puntos: 0
Problema con caracteres al crear PDF desde PHP

Buenos dias a todo, ante nada quisiera agradecerles a todos por compartir todo el conocimiento con los usuarios mas novatos como yo ya que soluciones muchos problemas con mi web buscando respuestas a mensajes anteriores.

Ya tengo todo listo y funcionando, solo que tengo pequeño problema muy molesto, resulta que cuando quiero transformar unos datos de una tabla a pdf, los transforma bien y como quiero pero los simboños "ñ" y "tildes" se muestran como "ñ" y otros caracteres extraños en el pdf.

Espero me puedan dar una mano, muchas gracias.

El codigo de mi archivo es el siguiente.

Código:
<?php
define('FPDF_FONTPATH','font/');
require('mysql_table.php');

include("comunes.php");

include ("../conectar.php");  

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

//Nombre del Listado
$pdf->SetFillColor(255,255,255);
$pdf->SetFont('arial','B',16);
$pdf->SetY(40);
$pdf->SetX(0);
    
$pdf->MultiCell(290,6,"Listado de Articulos",0,C,0);

$pdf->Ln();    
	
//Restauracin de colores y fuentes

    $pdf->SetFillColor(224,235,255);
    $pdf->SetTextColor(0);
    $pdf->SetFont('arial','B',7);


$codarticulo=$_GET["codarticulo"];
$descripcion=$_GET["descripcion"];
$codfamilia=$_GET["cboFamilias"];
$referencia=$_GET["referencia"];
$codproveedor=$_GET["cboProveedores"];
$codubicacion=$_GET["cboUbicacion"];

$where="1=1";
if ($codarticulo <> "") { $where.=" AND codarticulo='$codarticulo'"; }
if ($descripcion <> "") { $where.=" AND descripcion like '%".$descripcion."%'"; }
if ($codfamilia > "0") { $where.=" AND codfamilia='$codfamilia'"; }
if ($codproveedor > "0") { $where.=" AND (codproveedor1='$codproveedor' OR codproveedor2='$codproveedor')"; }
if ($codubicacion > "0") { $where.=" AND codubicacion='$codubicacion'"; }
if ($referencia <> "") { $where.=" AND referencia like '%".$referencia."%'"; }


$header=array('Referencia','Descripcion','P. Tienda','Stock');

//Colores, ancho de lnea y fuente en negrita
$pdf->SetFillColor(200,200,200);
$pdf->SetTextColor(0);
$pdf->SetDrawColor(0,0,0);
$pdf->SetLineWidth(.2);
$pdf->SetFont('arial','B',8);
	
//Cabecera
$w=array(71,83,18,18);
for($i=0;$i<count($header);$i++)
	$pdf->Cell($w[$i],7,$header[$i],1,0,'C',1);
$pdf->Ln();
$pdf->SetFont('arial','',8);
$sel_resultado="SELECT * FROM articulos LEFT JOIN familias ON articulos.codfamilia=familias.codfamilia WHERE articulos.borrado=0 AND articulos.stock<=articulos.stock_minimo  AND ".$where;
$res_resultado=mysql_query($sel_resultado);
$contador=0;
while ($contador < mysql_num_rows($res_resultado)) {
	$pdf->Cell($w[0],5,mysql_result($res_resultado,$contador,"referencia"),'LRTB',0,'C');
	$pdf->Cell($w[1],5,mysql_result($res_resultado,$contador,"descripcion"),'LRTB',0,'L');
	$pdf->Cell($w[2],5,mysql_result($res_resultado,$contador,"precio_tienda"),'LRTB',0,'R');
	$pdf->Cell($w[3],5,mysql_result($res_resultado,$contador,"stock"),'LRTB',0,'R');
	$pdf->Ln();
	$contador++;
};
			
$pdf->Output();
?>
  #2 (permalink)  
Antiguo 09/12/2010, 21:15
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: Problema con caracteres al crear PDF desde PHP

Hace utf8_encode a todo lo que envies con Cell o MultiCell y setea los header de la pagina que genera el PDF a utf8..
Código:
$pdf->Cell($w[$i],7,utf8_encode($header[$i]),1,0,'C',1);
Espero sea eso es lo mas seguro salute!!!
Ah otra forma es que en la clase tu sobrescribas el metodo Cell...entra en el codigo del FPDF copia lo que hace en la funcion Cell y ahora definela en la clase tuya que extiende FPDF y ahi dentro pegas lo que copiaste pero metiendo ya el utf8_encode...

De esta ultima forma no deberas cambiar cada Cell...

Salut!!!
__________________
Lo maravilloso de aprender algo es que nadie puede arrebatárnoslo.
  #3 (permalink)  
Antiguo 10/12/2010, 15:16
 
Fecha de Ingreso: marzo-2006
Mensajes: 36
Antigüedad: 15 años, 1 mes
Puntos: 0
Respuesta: Problema con caracteres al crear PDF desde PHP

Muchas gracias amigo por la pista y decirme donde aplicar el arreglo ya que con utf8_encode no se soluciono mi problema pero si con utf8_decode y solo lo aplique en los 4 ultimos mysql_result.

Muchas gracias por todosandinosaso.
  #4 (permalink)  
Antiguo 13/12/2010, 04:49
 
Fecha de Ingreso: julio-2008
Mensajes: 208
Antigüedad: 12 años, 10 meses
Puntos: 5
Respuesta: Problema con caracteres al crear PDF desde PHP

Cita:
Iniciado por phpSEEK Ver Mensaje
Muchas gracias amigo por la pista y decirme donde aplicar el arreglo ya que con utf8_encode no se soluciono mi problema pero si con utf8_decode y solo lo aplique en los 4 ultimos mysql_result.

Muchas gracias por todosandinosaso.
Excelente!!! y me alegro que lo hayas solucionado ...por lo menos con esa pista si usaste decode es porque tus datos en la base estan en utf8....

Salut!!!
__________________
Lo maravilloso de aprender algo es que nadie puede arrebatárnoslo.

Etiquetas: caracteres, pdf
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 08:07.