Foros del Web » Programando para Internet » PHP »

generando salidas formateadas

Estas en el tema de generando salidas formateadas en el foro de PHP en Foros del Web. Hola que tal? tengo que generar una especie de informe imprimible en php, con informacion de mis clientes que saco de una consulta, para que ...
  #1 (permalink)  
Antiguo 06/09/2010, 20:24
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 14 años, 6 meses
Puntos: 0
generando salidas formateadas

Hola que tal? tengo que generar una especie de informe imprimible en php, con informacion de mis clientes que saco de una consulta, para que me quede mas o menos una cosa asi:

LOGO DEL SITIO
nombre de usuario
mes
año
servicio1 - importe
servicio2 - importe
servicio3 - importe

TOTAL


Todo eso, uno por cada cliente, y cada uno tiene que ocupar una pagina diferente, de manera tal de que genere el informe y al darle imprimir que me imprima todas las paginas de una vez para poder darsela a mis clientes.

Espero que se haya entendido lo que quiero hacer.

No se muy bien nomas como hacerlo, hay un alto estandar en pixeles de hojas A4 como para hacer algo asi como:
<div style="height: 1000px">informacion de cliente 1</div>
<div style="height: 1000px">informacion de cliente 2</div>
<div style="height: 1000px">informacion de cliente 3</div>

O se hace de otra manera esto???

Les agradezco mucho si me ayudan con esto que estoy medio perdido jaja

salu2
  #2 (permalink)  
Antiguo 06/09/2010, 20:27
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: generando salidas formateadas

puedes hacerlo en pdf, creo que seria mucho mas comodo.
  #3 (permalink)  
Antiguo 06/09/2010, 23:35
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 11 meses
Puntos: 13
Respuesta: generando salidas formateadas

pues crea una pagina que tome la informacion de la base de datos con select o lo que quieres, de manera que te muestre todos los clientes.
luego genera un links a una segunda pagina pasa los valores por GET o sea el id del cliente
una vez tomado el id por Get vuelcas todo lo que deses mostrar en esa segunda pagina referida a ese id o sea a ese cliente ...

seria mas sencillo ayudarte si colocas la tabla de la base datos que contine la informacion de los clientes...

saludos!!
  #4 (permalink)  
Antiguo 07/09/2010, 06:49
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: generando salidas formateadas

claro, en pdf estaria bueno si pero no se como hacerlo.

En cuanto a las tablas, son 2 las que necesito usar:

Clientes (id_cliente, nombre_cliente, domicilio, telefono)
Servicios_por_cliente (id_cliente, mes, anio, servicio, importe)

por cada pagina tendria que mostrarme todos los servicios que uso cada cliente en un determinado mes y año.
  #5 (permalink)  
Antiguo 07/09/2010, 07:54
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: generando salidas formateadas

Hola. Para generar un PDF podrías usar, por ejemplo, FPDF (http://www.fpdf.org/); ahí tienes mucha información y ejemplos de como implementarlo. Ahora bien, podrías definir también (si ya lo tienes hecho, solo agregarlo) un archivo de estilos con lo siguiente:

Código:
DIV.salto_pagina_despues{
	 page-break-after:always;
}
DIV.salto_pagina_anterior{
	 page-break-before:always;
}

Cómo se usa:

<div id="salto_pagina_despues">Este elemento se imprimirá en la primera página.</div>
<div>Este elemento se imprimirá en la segunda página.</div>
<div id="salto_pagina_anterior">Este elemento se imprimirá en la tercera página.</div>


Puedes probarlo y nos cuentas... saludos!
  #6 (permalink)  
Antiguo 07/09/2010, 08:09
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: generando salidas formateadas

me convence mas la segunda opcion porque no tengo muchas ganas de ponerme a leer lo otro jeje

Una pregunta nomas, si tengo mas de 3 paginas solo tengo que repetir esa estructura nomas para que me quede bien? Es decir, algo asi

<div id="salto_pagina_despues">Este elemento se imprimirá en la primera página.</div>
<div>Este elemento se imprimirá en la segunda página.</div>
<div id="salto_pagina_anterior">Este elemento se imprimirá en la tercera página.</div>
<div id="salto_pagina_despues">Este elemento se imprimirá en la cuarta página.</div>
<div>Este elemento se imprimirá en la quinta página.</div>
<div id="salto_pagina_anterior">Este elemento se imprimirá en la sexta página.</div>
<div id="salto_pagina_despues">Este elemento se imprimirá en la septima página.</div>
  #7 (permalink)  
Antiguo 07/09/2010, 10:06
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: generando salidas formateadas

No, de esa manera te va a imprimir:

En la 1° Página: "Este elemento se imprimirá en la primera página."
En la 2° Página: "Este elemento se imprimirá en la segunda página."
En la 3° Página: "Este elemento se imprimirá en la tercera página."
y "Este elemento se imprimirá en la cuarta página."
En la 4° Página: "Este elemento se imprimirá en la quinta página."
En la 5° Página: "Este elemento se imprimirá en la sexta página." y "Este elemento se imprimirá en la séptima página."
En la 6° Página: se imprimirá en blanco

Te tiene que quedar de la siguiente forma:

crea un archivo .CSS, por ejemplo, 'impresiones.css' (puedes poner preferencias de cabecera, pie de página, etc.)

Código:
DIV.salto_pagina_despues{
	 page-break-after:always;
}
DIV.salto_pagina_anterior{
	 page-break-before:always;
}
y en la página en si:

Código HTML:
<html>
<head>
<title>prueba impresión páginas</title>
<LINK HREF="archivos_Pruebas/paraImprimir.css" TYPE="text/css" REL="stylesheet" MEDIA="print">
<!-- lo que dice [B][I]MEDIA="print"[/I][/B] indica que es solamente para salida de impresoras... si lo quisieras hacer para salida de pantalla, tendrpia que decir [B][I]MEDIA="screen"[/I][/B]-->
</head>

<body>
<div class="salto_pagina_despues">Este elemento se imprimirá en la primera página.</div>
<div>Este elemento se imprimirá en la segunda página.</div>
<div class="salto_pagina_anterior">Este elemento se imprimirá en la tercera página.</div>
<div class="salto_pagina_anterior">Este elemento se imprimirá en la cuarta página.</div>
<div class="salto_pagina_anterior">Este elemento se imprimirá en la quinta página.</div>
<div class="salto_pagina_anterior">Este elemento se imprimirá en la sexta página.</div>
<div class="salto_pagina_anterior">Este elemento se imprimirá en la septima página.</div>
</body>
</html> 
Nota que cambié 'id=' por 'class='... intenta y después nos dices... saludos!!
  #8 (permalink)  
Antiguo 07/09/2010, 21:26
 
Fecha de Ingreso: enero-2009
Ubicación: Neiva, Huila
Mensajes: 196
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: generando salidas formateadas

el fpdf es muy facil de usar....no te vayas por el lado aparente mas facil =)
  #9 (permalink)  
Antiguo 08/09/2010, 08:20
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: generando salidas formateadas

si es verdad, es bastante fácil y cómodo para usarlo (me complico la vida solamente porque no tengo ganas de leer mucho jeje)

Tengo una pregunta nomas, uso el framework code igniter, a donde deberia dejar la libreria que me bajo, dejo la carpeta entera en ..\system\application\libraries y la llamo con $this->load->library('fpdf'); ???

porque encontre un ejemplito que escribe "hola mundo" donde ocupa la funcion require que no la conozco:
Cita:
<?php
require('fpdf.php');

$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'¡Hola, Mundo!');
$pdf->Output();
?>
y comence hace poco con php, y usando code igniter desde el comienzo, o sea que si me sacan este framework entro a combulsionar mal jajaj
  #10 (permalink)  
Antiguo 08/09/2010, 08:39
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 18 años, 4 meses
Puntos: 70
Respuesta: generando salidas formateadas

En CI, siempre coloco las librerías externas en el directorio "plugins".

Y lo uso:

Código PHP:
Ver original
  1. $this ->load->plugin('to_pdf');

Bueno pero si tu problema es más de framework, no debería ir acá el post

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #11 (permalink)  
Antiguo 08/09/2010, 09:47
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: generando salidas formateadas

mm creo haber solucionado ese problema ya, pero ahora me aparece esto, saben a que se puede deber???

FPDF error: Some data has already been output, can't send PDF file
  #12 (permalink)  
Antiguo 08/09/2010, 10:26
Avatar de Hayi  
Fecha de Ingreso: febrero-2002
Ubicación: Santa Fe - Santa Fe
Mensajes: 121
Antigüedad: 22 años, 10 meses
Puntos: 3
Respuesta: generando salidas formateadas

Hola de nuevo. El problema es que hay que limpiar el buffer de salida. Intentá esto:

Código:
<?php

ob_end_clean();

require('fpdf.php');
$pdf=new FPDF();
$pdf->AddPage();
$pdf->SetFont('Arial','B',16);
$pdf->Cell(40,10,'¡Hola, Mundo!');
$pdf->Output();
?>
Probalo y contanos... saludos!

PD: justo que ya tenía hecho un modelo de informe en html usando clases, leíste sobre el FPDF! jajajaja. Saludos.
  #13 (permalink)  
Antiguo 08/09/2010, 19:32
 
Fecha de Ingreso: junio-2010
Mensajes: 155
Antigüedad: 14 años, 6 meses
Puntos: 0
Respuesta: generando salidas formateadas

me anduvo bárbaro, gracias hayi, ahor a leer un poquito de esto nomas.

muchas gracias a todos por su ayuda

salu2

Etiquetas: salidas
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 09:21.