Bienvenid@ webmaster Acceso Directo :
ir al home
Home
Productos y Servicios
Artículos y Secciones
Foros de Discusión
Registro de Usuarios
Usuarios
Canal del Webmaster
Contactos
©2004 Blasten.com
Envía tus Articulos


ArtículoComentariosRecomendarGuardarImprimir
Creando Archivos PDF en PHPResaltado
Las funciones PDF en PHP pueden crear archivos PDF utilizando la librer?a PDFlib creada por Thomas Merz.

La documentaci?n en esta secci?n solamente es una descripci?n de las funciones de la librer?a PDFlib y no deber?a considerarse una referencia exhaustiva. Se ha de consultar la documentaci?n incluida en el c?digo fuente de la distribuci?n de PDFlib para una completa y detallada explicaci?n de cada funci?n. Proporciona muy buena descripci?n de las capacidades de PDFlib y contiene actualizada la documentaci?n de todas las funciones.

Todas las funciones de PDFlib y del m?dulo PHP tienen nombres iguales para las funciones y par?metros. Se necesitar? entender algunos de los conceptos b?sicos de PDF y PostScript para un eficiente uso de esta extensi?n. Todas las longitudes y coordenadas se mesuran en puntos PostScript. Generalmente hay 72 puntos PostScript por pulgada, pero esto depende de la resoluci?n de salida. Se puede consultar la documentaci?n incluida en la distribuci?n de PDFlib para una detallada explicaci?n del sistema de coordenadas utilizado.

Hay que tener en cuenta que la mayor?a de las funciones PDF requieren un primer par?metro pdfdoc. En los siguientes ejemplos hay m?s informaci?n.

Nota: Si se est? interesado en alternativas de generadores gratis de PDF que no utilizen liber?as externas PDF, mirar este FAQ relacionado.

Requerimientos
PDFlib est? disponible para descargar en http://www.pdflib.com/products/pdflib/index.html, pero requiere la compra de una licencia para uso comercial. Se requieren las librer?as JPEG y TIFF para compilar esta extensi?n.

Compatibilidad con versiones antiguas de PDFlib
Cualquier versi?n de PHP despu?s del 9 de Marzo del 2000 no soporta versiones de PDFlib anteriores a la 3.0.

PDFlib 3.0 o superior es compatible desde PHP 3.0.19 en adelante.

Instalaci?n
To get these functions to work, you have to compile PHP with --with-pdflib[=DIR]. DIR is the PDFlib base install directory, defaults to /usr/local. In addition you can specify the jpeg, tiff, and pnglibrary for PDFlib to use, which is optional for PDFlib 4.x. To do so add to your configure line the options --with-jpeg-dir[=DIR] --with-png-dir[=DIR] --with-tiff-dir[=DIR].

When using version 3.x of PDFlib, you should configure PDFlib with the option --enable-shared-pdflib.

Configuraci?n en tiempo de ejecuci?n
Esta extensi?n no tiene directivas de configuraci?n en php.ini.

Confusiones con antiguas versiones de PDFlib
Desde PHP 4.0.5, la extensi?n PHP para PDFlib es oficialmente soportada por PDFlib GmbH. Esto significa que todas las funciones descritas en el manual de PDFlib (V3.00 o superior) son soportadas por PHP 4 con el mismo funcionamiento y par?metros. S?lo los valores devueltos pueden variar en el manual PDFlib, ya que PHP adopt? la convenci?n de devolver FALSE. Por razones de compatibilidad, PDFlib a?n soporta las antiguas funciones, pero deber?an reemplazarlas en sus nuevas versiones. PDFlib GmbH no dar? soporte a cualquier problema causado por el uso de estas funciones obsoletas.

Ejemplos:

La mayor?a de las funciones son bastante f?ciles de utilizar. La parte m?s dif?cil probablemente es la creaci?n de un primer documento PDF. El siguiente ejemplo deber?a ayudar para comenzar. El ejemplo crea el archivo test.pdf en una p?gina. La p?gina contiene el texto "Times Roman outlined" en un contorno, con fuente de 30pt. El texto tambi?n est? subrayado.

Ejemplo 1. Creando un documento PDF con PDFlib


<?php
$pdf 
pdf_new();
pdf_open_file($pdf"test.pdf");
pdf_set_info($pdf"Author""Javier Tacon");
pdf_set_info($pdf"Title""Test for PHP wrapper of PDFlib 2.0");
pdf_set_info($pdf"Creator""See Author");
pdf_set_info($pdf"Subject""Testing");
pdf_begin_page($pdf595842);
pdf_add_outline($pdf"Page 1");
$font pdf_findfont($pdf"Times New Roman""winansi"1);
pdf_setfont($pdf$font10);
pdf_set_value($pdf"textrendering"1);
pdf_show_xy($pdf"Times Roman outlined"50750);
pdf_moveto($pdf50740);
pdf_lineto($pdf330740);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
echo 
"<A HREF=getpdf.php>finished</A>";
?>  



El script getpdf.php simplemente devuelve el documento pdf.
Ejemplo 2. Mostrando un documento PDF precalculado


<?php
$len 
filesize($filename);
header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
readfile($filename);
?>  





La distrubuci?n PDFlib contiene un ejemplo m?s complejo para crear un reloj anal?gico en una p?gina. Aqu? se utiliza el m?todo de creaci?n en memoria de PDFlib para no tener que crear un archivo temporal. El ejemplo se ha convertido a PHP desde uno de PDFlib (El mismo ejemplo est? disponible en la documentaci?n ClibPDF.)

Ejemplo 3. Ejemplo pdfclock de la distribuci?n PDFlib


<?php
$radius 
200;
$margin 20;
$pagecount 10;

$pdf pdf_new();

if (!
pdf_open_file($pdf"")) {
    echo 
error;
    exit;
};

pdf_set_parameter($pdf"warning""true");

pdf_set_info($pdf"Creator""pdf_clock.php");
pdf_set_info($pdf"Author""Uwe Steinmann");
pdf_set_info($pdf"Title""Analog Clock");

while (
$pagecount-- > 0) {
    
pdf_begin_page($pdf* ($radius $margin), * ($radius $margin));

    
pdf_set_parameter($pdf"transition""wipe");
    
pdf_set_value($pdf"duration"0.5);
  
    
pdf_translate($pdf$radius $margin$radius $margin);
    
pdf_save($pdf);
    
pdf_setrgbcolor($pdf0.00.01.0);

    
/* minute strokes */
    
pdf_setlinewidth($pdf2.0);
    for (
$alpha 0$alpha 360$alpha += 6) {
        
pdf_rotate($pdf6.0);
        
pdf_moveto($pdf$radius0.0);
        
pdf_lineto($pdf$radius-$margin/30.0);
        
pdf_stroke($pdf);
    }

    
pdf_restore($pdf);
    
pdf_save($pdf);

    
/* 5 minute strokes */
    
pdf_setlinewidth($pdf3.0);
    for (
$alpha 0$alpha 360$alpha += 30) { 
        
pdf_rotate($pdf30.0);
        
pdf_moveto($pdf$radius0.0);
        
pdf_lineto($pdf$radius-$margin0.0);
        
pdf_stroke($pdf);
    }

    
$ltime getdate();

    
/* draw hour hand */
    
pdf_save($pdf);
    
pdf_rotate($pdf,-(($ltime['minutes']/60.0)+$ltime['hours']-3.0)*30.0);
    
pdf_moveto($pdf, -$radius/10, -$radius/20);
    
pdf_lineto($pdf$radius/20.0);
    
pdf_lineto($pdf, -$radius/10$radius/20);
    
pdf_closepath($pdf);
    
pdf_fill($pdf);
    
pdf_restore($pdf);

    
/* draw minute hand */
    
pdf_save($pdf);
    
pdf_rotate($pdf,-(($ltime['seconds']/60.0)+$ltime['minutes']-15.0)*6.0);
    
pdf_moveto($pdf, -$radius/10, -$radius/20);
    
pdf_lineto($pdf$radius 0.80.0);
    
pdf_lineto($pdf, -$radius/10$radius/20);
    
pdf_closepath($pdf);
    
pdf_fill($pdf);
    
pdf_restore($pdf);

    
/* draw second hand */
    
pdf_setrgbcolor($pdf1.00.00.0);
    
pdf_setlinewidth($pdf2);
    
pdf_save($pdf);
    
pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
    
pdf_moveto($pdf, -$radius/50.0);
    
pdf_lineto($pdf$radius0.0);
    
pdf_stroke($pdf);
    
pdf_restore($pdf);

    
/* draw little circle at center */
    
pdf_circle($pdf00$radius/30);
    
pdf_fill($pdf);

    
pdf_restore($pdf);

    
pdf_end_page($pdf);

    
# to see some difference
    
sleep(1);
}

pdf_close($pdf);

$buf pdf_get_buffer($pdf);
$len strlen($buf);

header("Content-type: application/pdf");
header("Content-Length: $len");
header("Content-Disposition: inline; filename=foo.pdf");
echo 
$buf;

pdf_delete($pdf);
?>  





Artículos Relacionados
Creando Tablas en L?nea (PHP)
Creando una galer?a de fotos (ASP)
Creando un libro de visitas sencillo y din?mico (PHP)
Trabajando con Archivos (PHP)
Editor de archivos (PHP)
Upload de archivos al servidor (PHP)
Forzar descarga de archivos (PHP)
Upload de archivos al servidor (PHP)
Crear archivos ZIP, en el Servidor (PHP)

Más Artículos relacionados >>
Artículo anterior Artículo siguiente
Descargar este contenido

Autor: Webmaster
Fecha: 8/10/2004 (565 días) Lecturas : 8.469
Valoración :
Comentarios: 13

xrVFsIorUgnDt

xanax guran
Valoración:
WIbGuGQCEnsNE

adobe photoshop 8 trial hnh
Valoración:
JHHzPiPwztGedP

risperdal used with p
Valoración:
lwQvkPhgrcvVA

online casino 8656 h
Valoración:
fKSfzrCSVWioG

aciphex 2916
Valoración:
SgGagiTaKsODwe

valium dosage 8(((
Valoración:

Agregar a mi lista
Solicitar Ayuda


subir página
Los contenidos expuestos en blasten.com® son propiedad única de sus autores, por lo cual se prohíbe la reproducción total o parcial de los contenidos expuestos en este sitio sin previo consentimiento del autor y el editor. Para intercambios de contenidos haga clic aqui y contáctenos. El logotipo y el nombre BLASTEN así como todos los gráficos expuestos son propiedad exclusiva de este portal.
©2004-2005 blasten.com Network