Ver Mensaje Individual
  #1 (permalink)  
Antiguo 25/01/2006, 06:38
Molxa
 
Fecha de Ingreso: enero-2005
Mensajes: 63
Antigüedad: 19 años, 3 meses
Puntos: 1
Crear PDF de varias páginas con listado sacado de BD

Hola a todos!

Mi problema es bien simple: sé crear una página pdf para posteriormente poder guardarla o imprimirla desde una base de datos, e incluso se crear un pdf de varias páginas. Esto es lo que hago para crear un pdf de una ficha de una inmobiliaria; los datos los saco de una base de datos mysql:

<?
//Imprimir PDF

$f = fopen("ficha2.pdf", "w");
$g = pdf_open($f);
pdf_begin_page($g, 421, 595);

//logo
$imagen1 = pdf_open_jpeg($g, "../../Img/logotipo_ficha2.jpg");
$x1 = pdf_get_value($g, "imagewidth", $imagen1);
$y1 = pdf_get_value($g, "imageheight", $imagen1);
pdf_place_image($g, $imagen1, 2, 500, 0.25);
pdf_close_image ($g,$imagen1);

# un texto
$texto="".strtoupper($fila['tipo_operacion'])." DE ".strtoupper($fila['tipo_inmueble'])."";
pdf_set_font($g, "Times-Bold", 20,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto);
pdf_show_xy($g,$texto,45,470);

# un texto
$texto2="REFERENCIA: ".$fila['referencia']."";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto2);
pdf_show_xy($g,$texto2,45,450);

# un texto
$texto2="PRECIO: ".$fila['precio_cia']." €";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto2);
pdf_show_xy($g,$texto2,250,450);

# un texto
$texto4="ZONA: ".$fila['zona']."";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto4);
pdf_show_xy($g,$texto4,45,430);

# un texto
$texto5="LOCALIDAD: ".$fila['localidad']."";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto5);
pdf_show_xy($g,$texto5,45,415);

# un texto
$texto6="PROVINCIA: ".$fila['provincia']."";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto6);
pdf_show_xy($g,$texto6,45,400);

# un texto
$texto6="DIRECCIÓN: ".$fila['direccion']."";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto6);
pdf_show_xy($g,$texto6,45,385);

# un texto
$texto6="PROPIETARIO: ".$fila['propietario']."";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto6);
pdf_show_xy($g,$texto6,45,370);

if($fila['caracteristicas'] != ""){
# un texto
$texto7="CARACTERÍSTICAS:";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto7);
pdf_show_xy($g,$texto7,45,340);

# un texto
$cadena="".$fila['caracteristicas']."";
#establecemos la tipografia
pdf_set_font($g, "Times-Roman", 12,"host", 0 );
#establecemos el color de la letra usando colores RGB
pdf_setcolor($g,"fill","rgb", 0, 0, 0);
#imprimimos la caja en la posicion deseada
pdf_show_boxed($g, $cadena , 45, 35, 345, 300, "left");
}

if($fila['observaciones'] != ""){
# un texto
$texto9="OBSERVACIONES:";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto9);
pdf_show_xy($g,$texto9,45,205);

# un texto
$cadena2="".$fila['observaciones']."";
#establecemos la tipografia
pdf_set_font($g, "Times-Roman", 12,"host", 0 );
#establecemos el color de la letra usando colores RGB
pdf_setcolor($g,"fill","rgb", 0, 0, 0);
#imprimimos la caja en la posicion deseada
pdf_show_boxed($g, $cadena2 , 45, -100, 345, 300, "left");
}

if($fila['imagen1'] != "vacia.gif"){
# un texto
$texto3="IMÁGENES:";
pdf_set_font($g, "Times-Bold", 12,"host", 0 );
pdf_set_parameter($g,"underline","false");
$ancho=pdf_stringwidth($g, $texto3);
pdf_show_xy($g,$texto3,45,125);

//imagenes 1
if($fila['imagen1'] != "vacia.gif"){
$imagen2 = pdf_open_jpeg($g, "../../fotografias/".$fila['imagen1']."");
}else{
$imagen2 = pdf_open_jpeg($g, "../../fotografias/vacia.jpg");
}
$x1 = pdf_get_value($g, "imagewidth", $imagen2);
$y1 = pdf_get_value($g, "imageheight", $imagen2);
pdf_place_image($g, $imagen2, 45, 0, 0.5);
pdf_close_image ($g,$imagen2);

//imagenes 2
if($fila['imagen2'] != "vacia.gif"){
$imagen3 = pdf_open_jpeg($g, "../../fotografias/".$fila['imagen2']."");
}else{
$imagen3 = pdf_open_jpeg($g, "../../fotografias/vacia.jpg");
}
$x1 = pdf_get_value($g, "imagewidth", $imagen2);
$y1 = pdf_get_value($g, "imageheight", $imagen2);
pdf_place_image($g, $imagen3, 220, 0, 0.5);
pdf_close_image ($g,$imagen3);

}
//fin de página
PDF_end_page($g);
pdf_close($g);
?>

El problema es que quiero crear un listado con todos los registros existentes en mi BD, para poder guardarlo o imprimirlo en PDF, pero no se cómo crear varias páginas en un mismo documento PDF con ese listado. Me explico, tengo como 200 registros en la BD y normalmente lo pagino a 20 por página, mi problema es que quiero hacer lo mismo pero en vez de imprimirlo en pantalla, imprimirlo en un documento PDF, pero no se cómo hacerlo.

A ver si me ayudais...he buscado información pero no encuentro nada.

Un saludo,