Contacto | #php_para_torpes | Enlázanos | ¿Quiénes somos?
19 usuarios Online (0)
Darse de alta en la web | Recuperar password   
Inicio / Foros / PHP / urgente! ayuda fpdf
3 respuestas recibidas | 275 visitas | Categoría PHP

urgente! ayuda fpdf

Avatar de suncubus
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 2 posts)

#0 Offline suncubus Usuario 10 mar 08 (15:06)  
Hola, soy nueva en el foro y bastante novatilla en php.
Estoy utilizando la librería de fpdf, y tengo dos problemas:
- No consigo que se me vean bien los acentos y la ñ.
- Al querer mostrar una imagen sacada de la base de datos me da error
Alguién sabe cual puede ser la solución?
Os pongo el código de mi pdf:

<?php
mysql_connect("localhost","edelvives","edelvives")
or die(mysql_error());
mysql_select_db("generador_generador")
or die(mysql_error());

define('FPDF_FONTPATH','fpdf153/font/');
require_once('fpdf153/fpdf.php');

$opcion="A";
$mandar=$_POST["mandar"];
$asignatura=$_POST["asign"];
$sql="SELECT * FROM asignatura_generador WHERE cod_asig=$asignatura";
$resultado=mysql_query($sql);
$fila=mysql_fetch_array($resultado);
$asignatura=$fila["nom_asig"];
$asignatura=strtoupper($asignatura);
function array_recibe($examen) {
$tmp = stripslashes($examen);
$tmp = urldecode($tmp);
$tmp = unserialize($tmp);
return $tmp;
}
$examen=array();
$examen=$_POST["examen"];
$examen=array_recibe($examen);

if($mandar==12 or $mandar==1 or $mandar==2 or $mandar==4 or $mandar==3 or $mandar==10){

if($mandar==12 or $mandar==4){
$opcion="A";
}
if($mandar==1 or $mandar==3){
$opcion="B";
}
if($mandar==2){
$opcion="C";
}
$pdf=new FPDF('L','cm','A4');
$pdf->AddPage();
$pdf->SetFont('times','B',20);
$pdf->Cell(28,1,$asignatura,0,1,'C','','');
$pdf->SetFont('times','B',16);
$pdf->Cell(28,2,'Opción: '.$opcion." ",0,1,'R','','');
$pdf->Cell(28,1,' Nombre: __________________________________________________________________',0,1,'L','','');
$pdf->Cell(28,1,' Grupo: ____________________________ Nº: _________________________________',0,1,'L','','');
$pdf->Cell(28,1,' Evaluación: _______________________ Fecha: ________________________________',0,1,'L','','');
$pdf->Cell(28,1,'',0,1,'R','','');
$pdf->SetFont('times','',12);
foreach($examen as $n=> $valor){
foreach ($examen[$n] as $subIndice=> $subValor) {
$separar=explode("|",$subValor);
$pdf->Cell(28,'1',"ACTIVIDAD",0,1,'L',0,'');
$pdf->MultiCell(28,'1',$separar[0],0,1,'L',0,'');
$pdf->Cell(28,'1',"imagen",0,1,'L',0,'');
//$graph-> img -> SetImgFormat 'jpeg');
$pdf->Image(../aplicacion/img_generador/$separar[1]);
$pdf->Cell(28,'1',"preg2",0,1,'L',0,'');
$pdf->MultiCell(28,'1',$separar[2],0,1,'L',0,'');
}
}
$pdf->Output();
}else{
$pdf=new FPDF('L','cm','A4');
$pdf->AddPage();
if($mandar==5 or $mandar==9){
$opcion="A";
}
if($mandar==6 or $mandar==8){
$opcion="B";
}
if($mandar==2){
$opcion="C";
}
$pdf->SetFont('times','B',24);
$pdf->Cell(28,1,'SOLUCIONES - '.$asignatura,0,1,'C','','');
$pdf->SetFont('times','B',16);
$pdf->Cell(28,2,'Opción: '.$opcion." ",0,1,'R','','');

$pdf->SetFont('times','B',16);
$pdf->Cell(28,1,' Evaluación: _______________________ Fecha: ________________________________',0,1,'L','','');
$pdf->Output();

}
?>

eñes y acentos. Codificación

Avatar de jurena
Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5

(Nivel 5 - 729 posts)

#1 Offline jurena Usuario 10 mar 08 (16:36)  
Al parecer -hablo de oídas en esto-, la clase fpdf no soporta codificación UTF-8, probablemente tu codificación. Si quieres crear documentos pdf con codificación UTF-8, tendrás que usar otra clase que lo soporte. Entre las que se recomiendan está:
tcpdf
La otra solución sería usar una codificación distinta, pero eso podría suponerte otro tipo de problemas.
Suerte

tcpdf, una buena opción

Avatar de suncubus
Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1 Nivel 1

(Nivel 1 - 2 posts)

#2 Offline suncubus Usuario 12 mar 08 (17:33)  
Hola, ya he resuelto el problema de una forma un poco apañada, pero me funciona.
He creado una imagen dcomo cabecera con lo cual el texto con tildes es una imagen. y el resto de los datos, ya que los traigo de la base de datos, me respeta los acentos.
Sería una buena solución usar tcpdf, pero no tenía tiempo para comenzar otra vez, pero tal vez hubiese sido la mejor manera.
En cuanto a mostrar la imagen de la base de datos, solo tenía que guardarme el nombre en una variable para luego poder mostrar la imagen
Gracias por tu respuesta
un saludo

eso que me dices es otra cosa

Avatar de jurena
Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5 Nivel 5

(Nivel 5 - 729 posts)

#3 Offline jurena Usuario 12 mar 08 (18:23)  
tal vez con un utf8_decode lo habrías resuelto sin tener que crear una imagen como cabecera. Es decir, si tienes poco texto codificado en utf-8, le aplicas utf8_decode() y resuelto por el momento, pues esa función lo convierte a ISO-8859-1 y ya no te dará problemas. Pero deberías ver cómo estás codificando el script y alguna otra cosilla, aunque si funciona, funciona, claro.
Me alegro.

Responder mensaje

Para poder participar debes estar registrado e identificado. Si no estás registrado como usuario de PHP-Hispano, :: Registrar ::
Login / Password   

Web alojada en Zilos

php-hispano.net 2002 - 2008 | XHTML 1.0
Datos Legales | Webmaster