Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   PHP (https://www.clubdelphi.com/foros/forumdisplay.php?f=15)
-   -   Generar documentos PDF al vuelo (https://www.clubdelphi.com/foros/showthread.php?t=39490)

dec 22-01-2007 00:09:52

Generar documentos PDF al vuelo
 
Hola,

Si alguna vez os véis en la necesidad de generar documentos PDF al vuelo podéis echar un vistazo a la clase FPDF, que, como reza su página Web:

Cita:

FPDF es una clase escrita en PHP que permite generar documentos PDF directamente desde PHP, es decir, sin usar la biblioteca PDFlib. La ventaja es que, mientras PDFlib es de pago para usos comerciales, la F de FPDF significa Free (gratis y libre): puede usted usarla para cualquier propósito y modificarla a su gusto para satisfacer sus necesidades.
FPDF tiene otras ventajas: funciones de alto nivel. Esta es una lista de sus principales características:
  • Elección de la unidad de medida, formato de página y márgenes
  • Gestión de cabeceras y pies de página
  • Salto de página automático
  • Salto de línea y justificación del texto automáticos
  • Admisión de imágenes (JPEG y PNG)
  • Colores
  • Enlaces
  • Admisión de fuentes TrueType, Type1 y codificación
  • Compresión de página
FPDF no necesita de ninguna extensión para PHP (excepto la biblioteca zlib si se va a activar la opción de compresión) y funciona con PHP4 y PHP5.

En la página Web de la clase FPDF encontraréis ejemplos, tutoriales y documentación traducida al español. Si tenéis problemas con los caracteres del español como tildes, eñes y demás, no dejéis de probar la extensión y nueva implementación de la clase FPDF: TCPDF.

Funciona exactamente igual que la anterior (con pocos cambios) y como particularidad es capaz de tratar con la codificación UTF-8, entre otras particularidades.

Sorprende la sencillez de uso de estas clases, aunque, bueno, todo dependerá del nivel de complejidad del documento PDF que quiera generarse, pero, así a bote pronto diríase que está muy bien pensada y que incorpora soluciones muy acertadas.

Y bueno, ¿a qué viene todo esto? Pues a que ayer estuve jugando un poco con estas clases y quería comentar aquí que todo fue bastante bien, de modo que si os véis en la necesidad de generar documentos PDF desde vuestras aplicaciones PHP... pues eso. :)

Más información, ejemplos, tutoriales y documentación en las páginas Web respectivas.

roman 22-01-2007 02:29:31

Yo uso esta librería frecuentemente con buenos resultados. Hasta ahora no he tenido problemas con las eñes o acentos sin necesidad de la extensión. En lo que difiero es en que sea una clase fácil de usar. Apenas necesites colocar imágenes, líneas y texto bien alineados, es sumamente tedioso. Tampoco es que se me ocurra cómo podría no serlo, pero el caso es que se vuelve muy pesado. Tampoco me parece muy bien diseñada. Tomemos un ejemplo de uno de sus tutoriales:

Cita:

Para añadir una nueva celda a continuación, con el texto centrado e ir a la siguiente línea, escribiremos:

Código PHP:

$pdf->Cell(60,10,'Hecho con FPDF.',0,1,'C'); 


Lo descrito difícilmente se discierne a partir del código, de manera que se me hace muy poco intuitvo y al generar un documento hay que estar constantemente reconsultando la lista de parámetros.

Pero no le quito mérito; como dije, la uso en varias partes y funciona bien.

// Saludos

dec 22-01-2007 02:42:11

Hola,

No le quites muchos más méritos porque los tiene y la prueba es que la utilizas Román. A mí también me parecieron los parámetros un tanto liosos, y, sin embargo, otras cosas me parecieron estupendas, como el poder redefinir los métodos "Header" y "Footer" para imprimir "directamente" el título y los pies de página del documento.

En cuando a que si hay que añadir imágenes y demás en el documento la cosa puede complicarse... claro está que la cosa puede complicarse. Sin embargo, al menos la extensión de que hablo puede imprimir directamente HTML (al menos un subconjunto) y creo que sin extensión ni nada ya puedes imprimir párrafos con saltos de línea automático, alineaciones, etc.

Por otro lado la diferencia principal de la extensión de que hablo estriba en la posibilidad de trabajar con UTF-8.

Si no es preciso trabajar con dicha codificación de caracteres la extensión TFPDF no hace falta a lo que se ve. :)

roman 22-01-2007 02:52:38

Cita:

Empezado por dec
No le quites muchos más méritos porque los tiene y la prueba es que la utilizas Román.

Bueno, es que muchas opciones no las hay. Pero desde luego ésta tiene el mérito de ser gratuita. En el trabajo se compró la PDFLib (creo que así se llama), supuestamente mucho más profesional, pero nunca lo sabremos porque el ordenador donde se iba a utilizar era una Sun Ultra Sparc con dos procesadores, y resulta que hay que comprar una licencia por cada procesador...

Pero bueno, hemos visto mucho código y muchas clases muy buenas y sorprendentemente bien escritas por ahí. En mi opinión, FPDF no es una de ellas.

Voy a ver la extensión que mencionas porque quizá facilite las cosas.

// Saludos

oracle 18-05-2007 04:50:28

Problema al abrir PDF en ventana Popup
 
Estimados, estoy haciendo una pequeña aplicación y necesito exportar a PDF. Hasta este punto todo bien, he encontrado varias referencias en este mismo foro y he obtenido buenos resultados. Tan solo tengo dos problemas
hasta ahora:

El primero es que yo estoy generando dentro del PDF una tabla, dicha tabla tiene dos columnas y varias filas. El asunto es que en ocasiones en una celda no cabe toda la informacion y debo ocupar dos celdas. He buscado y creo que la funcion para el ajuste y formato de celda s automaticamente es MultiCell. Pues bien, estoy utilizando dicha funcion, y ajusta perfectamente la celda a la longitud del texto, pero cuando imprime la proxima celda lo hace fuera de sitio, o sea lo hace debajo, y cuando utilizo la funcion Cell solamente si lo hace bien. Aqui les dejo un fragmento de codigo:

Código PHP:

.....

$pdf->SetFont('Arial','',12);
while(
$nc $no_conf->fetch_row())
      {
           
           
$pdf->MultiCell(95,5,$nc[1],1,0);
           
$pdf->MultiCell(95,5,$nc[3],1,0);
           
$pdf->Ln(5);
       }
..... 


Lo otro es lo siguiente: Yo deseo mostrar el documento PDF en una ventana tipo Popup, para ellos hice la siguiente funcion en javascript:

Código:

<script language="JavaScript">

function Ventana(URL)
  { 
    window.open(URL,"Mi nueva ventana","width=500, height=350, scrollbars=no,    menubar=no, location=no, resizable=no")
}
</script>

Y la llamo en un vinculo luego mas o menos asi:

Código:

<a href="javascript:Ventana ('generarPDF.php')"> PDF</a>
El problema es el siguiente: Cuendo doy en el vinculo me sale una ventana donde me dice si deseo guardar el documento o abrirlo, y cuando le doy cualquier opcion me dice que el documento no esta disponible.

En dicho documento yo recupero para la generacion del documento varias variables de Sesion creadas previamente para a partir de ella realizar consultas a la BD y generar el documento PDF, no se si en eso este el problema, puede ser y por eso os pido consejo.


Estoy utilizando IExplorer 6, WAMP y php5.

Saludos

Oracle


La franja horaria es GMT +2. Ahora son las 07:11:07.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi