Foros del Web » Programando para Internet » PHP »

Mostrar varios resultados de BD en PDF?

Estas en el tema de Mostrar varios resultados de BD en PDF? en el foro de PHP en Foros del Web. Buen día compañeros: estoy haciendo un sistema de impresión de etiquetas vía web para nuestros usuarios usuarios, permitanme explicarles un poco el asunto: el sistema ...
  #1 (permalink)  
Antiguo 24/02/2006, 12:38
Avatar de ebe
ebe
 
Fecha de Ingreso: marzo-2004
Ubicación: Guatemala
Mensajes: 363
Antigüedad: 20 años, 1 mes
Puntos: 11
Pregunta Mostrar varios resultados de BD en PDF?

Buen día compañeros:

estoy haciendo un sistema de impresión de etiquetas vía web para nuestros usuarios usuarios, permitanme explicarles un poco el asunto:

el sistema web permite al usuario ingresar a una BBDD PostgreSQL registros de:
- nombre
- dirección
- telefono
- ciudad
- número de guía ... entre otros dos más o menos.

Luego que ha ingresado todos los datos (pueden ser aprox. 500 datos, o sea 500 etiquetas) a través de la interfaz web, le doy opción para que imprima todas las etiquetas, estas etiquetas se las damos nosotros, las cuales caben 6 en una hoja tamaño carta y tienen un formato ya definido..

lo que he hecho para probar la forma de formatear las etiquetas en un pdf me ha salido bien y he logrado posicionarlas conforme al formato de las etiquetas que les entregamos, pero solo probando con una hoja (estoy utilizando pdflib para el caso)

lo que deseo hacer es que cuando decidan imprimir el xx número de etiquetas
los datos que ingresaron y que estan en la BBDD sean pasados al pdf y pueda realizar el posicionamiento de los resultados en los campos específicos de cada etiqueta, la cantidad de resultados por página es de 30 campos o sea 5 por etiqueta y por lógica que en base a la cantidad de resultados calcule e número de páginas necesarias para presentar todas las etiquetas..

hasta el momento tengo un código así:

// ******** SENTENCE TO SELECT DATA FROM DATABASE -
$sel_pe = "SELECT cod_oficambio, cod_pais, nom_oficambio, desc_oficambio, prox_numcorrelativo_cn
FROM ems_oficambio ORDER BY id ASC";

if(!$exec_pe = pg_query($conn, $sel_pe))
echo("no se logro la solicitud de prueba de entrega" . pg_last_error($conn));
exit;

$cantidad = pg_num_rows($exec_pe);
//echo($pag_ = $cantidad . "<br />");
$cant_paginas = $cantidad/30;
//echo('la cantidad de paginas son: ' . $cant_paginas . '<br />');
//echo('');
//exit;
// LA CANTIDAD DE PAGINAS SERIA LA DIVISION DE EL TOTAL DE RESULTADOS DIVIDO POR LA CANTIDAD
// DE DATOS QUE SE PUEDEN MOSTRAR POR PÁGINA.

$date = date( 'F d, Y' );
// create a pdf document in memory -
$pdf = pdf_new();
pdf_open_file($pdf);
// set up name of font for later use -
$fontname = 'Times-Roman';
// set up the page size in points and create page
// US letter is 11" x 8.5" and there are approximately 72 points per inch
$width = 11*72;
$height = 8.5*72;

// for now it is supposed that this is the range of pages available to display -
//$i = 10 ;
// $o = 1;
$e = 0;
// a while to show the data content -
// while($e = pg_fetch_object($exec_pe)){
while($e < $cantidad){
pdf_begin_page($pdf, $width, $height);

//################################################## ################
################################################## #################
// AQUI EMPIEZA LA PRESENTACION DEL CONTENIDO A MOSTRAR PARA LA IMPRESION DE ETIQUETAS

$font = pdf_findfont($pdf, $fontname, 'host', 0);
if($font)
pdf_setfont($pdf, $font, 10);
//$startx = ($width - pdf_stringwidth($pdf, 'PHP Certification'))/2;
// pdf_show_xy($pdf, 'PHP Certification', $startx, 490);
// add text
$font = pdf_findfont($pdf, $fontname, 'host', 0);
if($font)
pdf_setfont($pdf, $font, 10);

//$startx = 25;
//$startx2 = 455;
// pdf_show_xy($pdf, 'This is to certify that:', $startx, 430);
// pdf_show_xy($pdf, strtoupper($name), $startx+10, 391);

$font = pdf_findfont($pdf, $fontname, 'host', 0);
if ($font)
pdf_setfont($pdf, $font, 10);

// ##################################################
// #############################
// etiqueta 1 de 6

// nombre destinatario etiqueta 1 -
pdf_show_xy($pdf, 'Nombre destinatario 1',
15, 550);

// dirección 1 de destinatario -
pdf_show_xy($pdf, 'Dirección destinatario 1',
15, 530);

// Número de Orden1 -
pdf_show_xy($pdf, 'Orden No.',
15, 435);

// Ciclo1 -
pdf_show_xy($pdf, 'No. de ciclo',
70, 435);

// remtente1 -
pdf_show_xy($pdf, 'Datos remitente',
140, 435);

// #############################
// etiqueta 2 de 6

// nombre destinatario etiqueta 2 -
pdf_show_xy($pdf, 'Nombre destinatario 2',
440, 550);

// dirección 2 de destinatario -
pdf_show_xy($pdf, 'Dirección destinatario 2',
440, 530);

// Número de Orden2 -
pdf_show_xy($pdf, 'Orden No.',
440, 435);

// Ciclo2 -
pdf_show_xy($pdf, 'No. de ciclo',
505, 435);

// remitente2 -
pdf_show_xy($pdf, 'Datos remitente',
575, 435);

// #########################################
// etiqueta 3 de 6
// nombre destinatario etiqueta 1 -
pdf_show_xy($pdf, 'Nombre destinatario 1',
15, 330);

// dirección 1 de destinatario -
pdf_show_xy($pdf, 'Dirección destinatario 1',
15, 310);

// Número de Orden1 -
pdf_show_xy($pdf, 'Orden No.',
15, 215);

// Ciclo1 -
pdf_show_xy($pdf, 'No. de ciclo',
70, 215);

// remtente1 -
pdf_show_xy($pdf, 'Datos remitente',
145, 215);

// #########################################
// etiqueta 4 de 6
// nombre destinatario etiqueta 1 -
pdf_show_xy($pdf, 'Nombre destinatario 1',
440, 110);

// dirección 1 de destinatario -
pdf_show_xy($pdf, 'Dirección destinatario 1',
440, 90);

// Número de Orden1 -
pdf_show_xy($pdf, 'Orden No.',
440, 5);

// Ciclo1 -
pdf_show_xy($pdf, 'No. de ciclo',
505, 5);

// remtente1 -
pdf_show_xy($pdf, 'Datos remitente',
575, 5);

// #########################################
// etiqueta 5 de 6
// nombre destinatario etiqueta 1 -
pdf_show_xy($pdf, 'Nombre destinatario 1',
15, 110);

// dirección 1 de destinatario -
pdf_show_xy($pdf, 'Dirección destinatario 1',
15, 90);

// Número de Orden1 -
pdf_show_xy($pdf, 'Orden No.',
15, 5);

// Ciclo1 -
pdf_show_xy($pdf, 'No. de ciclo',
70, 5);

// remtente1 -
pdf_show_xy($pdf, 'Datos remitente',
145, 5);

// #########################################
// etiqueta 6 de 6
// nombre destinatario etiqueta 1 -
pdf_show_xy($pdf, 'Nombre destinatario 1',
440, 330);

// dirección 1 de destinatario -
pdf_show_xy($pdf, 'Dirección destinatario 1',
440, 310);

// Número de Orden1 -
pdf_show_xy($pdf, 'Orden No.',
440, 215);

// Ciclo1 -
pdf_show_xy($pdf, 'No. de ciclo',
505, 215);

// remtente1 -
pdf_show_xy($pdf, 'Datos remitente',575, 215);

// ################################################## #########################
// ################################################## #########################
pdf_end_page($pdf); -

}

// aqui termino la produccion de la cantidad de paginas necesarias para la impresión -
// ************************************************** ************************************
pdf_close($pdf);
$data = pdf_get_buffer($pdf);
// generate the headers to help a browser choose the correct application
header('Content-type: application/pdf');
header('Content-disposition: inline; filename=pruebasdeentrega.pdf');
header('Content-length: ' . strlen($data));
// output PDF
echo $data;

Pero de ahí ya no le veo como hacerle para: calcular el número de hojas que necesitare en base al número de resultados y como hacerle para crear ese bucle que me vaya haciendo la colocación de los datos


de antemano

gracias

£ß£
__________________
http://dev.wsnetcorp.com
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:35.