Foros > PHP: Problemas con fpdf

  1. suncubus

    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();

    }
    ?>

  2. wcd

    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 "&iacute;" 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,


responder

Para poder responder a este tema tenes que ingresar. Si no tenes una cuenta podes registrarse gratis..

publicidad