Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/10/2011, 16:52
Frasco
 
Fecha de Ingreso: agosto-2003
Ubicación: España - Madrid
Mensajes: 169
Antigüedad: 20 años, 8 meses
Puntos: 0
Generar RTF con PHP

Buenas a todos!

Os cuento, estoy intentando generar un documento rtf, pero tengo un pequeño problema...

He seguido el manual que aparece en esta web: http://www.desarrolloweb.com/articulos/1826.php y he podido sacar algo... El problema viene en lo que yo quiero hacer.

Yo no tengo una plantilla para cada certificado, sino que mi intención es generar algo así como unas tarjetas de visita, por así decirlo, y pretendo que en una misma hoja/plantilla me entren 20 tarjetas, por ejemplo. Siguiendo con el ejemplo que dan en esa web tendría 20 tarjetas en cada hoja pero con los mismos datos, y yo necesito 20 tarjetas con diferentes datos.

¿Alguien puede echarme una mano? No sé de qué otra manera puedo plantearme esto... También me gustaría meter imágenes diferentes en otra aplicación (a modo de carnets) pero tampoco sé exactamente cómo hacerlo.

El código de la web es este:
Código PHP:
//Función
    
function leef ($fichero) {
        
$texto file($fichero);
        
$tamleef sizeof($texto);
        for (
$n=0;$n<$tamleef;$n++) {
            
$todo $todo $texto[$n];
        }
        return 
$todo;
    }
    
    
//Función rtf
    
function rtf($sql,$plantilla,$fsalida,$matequivalencias) {
        
$pre=time();
        
$fsalida="/salida/".$pre.$fsalida;
        
mysql_connect(...);
        
//Paso
        
$txtplantilla leef($plantilla);
        
//Paso
        
$matriz=explode('sectd',$txtplantilla);
        
$cabecera $matriz[0].'sectd';
        
$inicio strlen($cabecera);
        
$final=strrpos($txtplantilla,'}');
        
$largo=$final-$inicio;
        
$cuerpo=substr($txtplantilla,$inicio,$largo);
        
//Paso
        
$punt fopen($fsalida,'w');
        
fputs($punt,$cabecera);
        
$result mysql_db_query(...,$sql);
        while (
$row=mysql_fetch_object($result)) {
            
$despues=$cuerpo;
            foreach (
$matequivalencias as $dato) {
                
$datosql=$row->$dato[1];
                
$datosql=stripslashes($datosql);
                
$datortf=$dato[0];
                
$despues=str_replace($datortf,$datosql,$despues);
            }
            
fputs($punt,$despues);
            
$saltopag "\par \page \par";
            
fputs($punt,$saltopag);
        }
        
fputs($punt,'}');
        
fclose($punt);
        return 
$fsalida;
    }
    
    
$plantilla "plantilla.rtf";
    
$sql"SELECT ...";
    
$equivalencias[0][0] = "#*NOMBRE*#-";
    
$equivalencias[0][1] = "nombre";
    
$equivalencias[1][0] = "#*APELLIDOS*#-";
    
$equivalencias[1][1] = "apellidos";
    
$salida rtf($sql,$plantilla,"certificado.rtf",$equivalencias);
    
$salida "<A href='$salida'>Obtener</a>";
    echo 
"<p>$salida</p>"
Gracias!!! :)