Mensajes [1] - Enviado el Lunes 10 de Marzo de 2008 a las 06:15hs
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();
}
?>
Mensajes [14] - Enviado el Lunes 14 de Abril de 2008 a las 02:42hs
Hola,
El problema de los acentos lo podes solucionar dependiendo de dos cosas:
1.- El tipo de fuente que uses
2.- Si estan codificadas para html
Si lo que aparece en el pdf es por ejemplo "í" en vez de la i con acento, el problema es sencillo, solo tenes que pasar el texto por la funcion html_entity_decode();.
Si directamente no aparece el caracter, es muy probable que necesites utilizar otra fuente o bien establecer el formato del documento (UTF-8, o UNICODE, o ISO, etc).
En cuanto al problema con la imagen no sabria decirte, por lo pronto en esta linea:
$pdf->Image(../aplicacion/img_generador/$separar[1]);
Necesitas agregar las comillas, lo que quedaria:
$pdf->Image("../aplicacion/img_generador/{$separar[1]}");
Siempre, antes de utilizar valores de una consulta sql te conviene probarla manualmente en un gestor tipo phpmyadmin para ver que realmente devuelva lo necesario.
Saludos,