MANUAL DE PHP

(y algo mas)windsurf pozo izquierdo
Google
search for in the  
ELMARRAJO.COM mysql bulma desarrollo web linux fedora html ayuda

windsurf mercedes camper

XIV. Funciones ClibPDF

Introducción

ClibPDF le permite crear documentos PDF con PHP. La funcionalidad y la interfaz de programación de ClibPDF son similares a PDFlib. Esta documentación debería ser leído junto con el manual de ClibPDF, ya que éste explica la biblioteca con mucho mayor detalle.

Muchas funciones en la biblioteca ClibPDF nativa y el módulo PHP, así como en PDFlib, tienen el mismo nombre. Todas las funciones excepto por cpdf_open() reciben el gestor del documento como su primer parámetro.

Actualmente este gestor no es usado internamente ya que ClibPDF no soporta la creación de varios documentos PDF a la vez. De hecho, no debería intentarlo siquiera, los resultados son impredecibles. Es difícil hacerse una idea de las consecuencias que representaría en un entorno multi-hilos. De acuerdo al autor de ClibPDF, esto cambiará en uno de los lanzamientos siguientes (la versión actual cuando se escribieron éstas líneas es 1.10). Si necesita esta funcionalidad, use el módulo pdflib.

Una característica interesante de ClibPDF (y PDFlib) es la habilidad de crear el documento pdf completamente en memoria sin usar archivos temporales. También provee la habilidad de pasar coordenadas en una unidad de longitud predefinida. (Esta característica puede ser simulada también por pdf_translate() cuando se usan las funciones PDFlib.)

Otra característica interesante de ClibPDF es el hecho de que cualquier página puede ser modificada en cualquier momento, incluso si una nueva página ya ha sido abierta. La función cpdf_set_current_page() permite abandonar la página actual y posiblemente modificar otra página.

La mayoría de funciones son razonablemente fáciles de usar. La parte más difícil es probablemente la creación misma de un documento PDF muy sencillo. El ejemplo presentado a continuación debería ayudarlo a iniciar. En éste se crea un documento con una página. La página contiene el texto "Times-Roman" en una fuente tipográfica de borde exterior y 30pt. El texto es subrayado.

Nota: This extension has been moved to the PECL repository and is no longer bundled with PHP as of PHP 5.1.0.

Nota: Si está interesado en generadores de PDF gratuitos alternativos que no usen bibliotecas PDF externas, vea este FAQ relacionado.

Requisitos

Para poder usar las funciones ClibPDF necesita instalar el paquete ClibPDF. Éste se encuentra disponible para su descarga en FastIO, pero requiere que compre una licencia para su uso comercial. PHP requiere que usted use cpdflib >= 2.

Instalación

Para poder utilizar estas funciones, se debe compilar PHP con la siguiente opción de configuración --with-cpdflib[=DIR]. DIR se refiere al directorio de instalación de cpdflib, cuyo valor por defecto es /usr. Además, si se requiere que ClibPDF haga uso de las librerías JPEG y TIFF, se deben añadir también las siguientes opciones --with-jpeg-dir[=DIR] y --with-tiff-dir[=DIR].

Configuración en tiempo de ejecución

Esta extensión no tiene directivas de configuración en php.ini.

Constantes predefinidas

Estas constantes están definidas por esta extensión y estarán disponibles solamente cuando la extensión ha sido o bien compilada dentro de PHP o grabada dinámicamente en tiempo de ejecución.

CPDF_PM_NONE (integer)

CPDF_PM_OUTLINES (integer)

CPDF_PM_THUMBS (integer)

CPDF_PM_FULLSCREEN (integer)

CPDF_PL_SINGLE (integer)

CPDF_PL_1COLUMN (integer)

CPDF_PL_2LCOLUMN (integer)

CPDF_PL_2RCOLUMN (integer)

Ejemplos

Ejemplo 1. Ejemplo Simple de ClibPDF

<?php
$cpdf
= cpdf_open(0);
cpdf_page_init($cpdf, 1, 0, 595, 842, 1.0);
cpdf_add_outline($cpdf, 0, 0, 0, 1, "Pag. 1");
cpdf_begin_text($cpdf);
cpdf_set_font($cpdf, "Times-Roman", 30, "WinAnsiEncoding");
cpdf_set_text_rendering($cpdf, 1);
cpdf_text($cpdf, "Times Roman outlined", 50, 50);
cpdf_end_text($cpdf);
cpdf_moveto($cpdf, 50, 50);
cpdf_lineto($cpdf, 740, 330);
cpdf_stroke($cpdf);
cpdf_finalize_page($cpdf, 1);
cpdf_finalize($cpdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($cpdf);
cpdf_close($cpdf);
?>

La distribución de pdflib contiene un ejemplo más complejo que genera una serie de páginas con un reloj análogo. Aquí está ese ejemplo convertido a PHP usando la extensión ClibPDF:

Ejemplo 2. Ejemplo pdfclock tomado de la distribución de pdflib 2.0

<?php
$radio
= 200;
$margen = 20;
$conteo_paginas = 40;

$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php");
cpdf_set_title($pdf, "Reloj An&aacute;logo");
 
while (
$conteo_paginas-- > 0) {
 
cpdf_page_init($pdf, $conteo_paginas+1, 0, 2 * ($radio + $margen), 2 * ($radio + $margen), 1.0);
 
 
cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* limpiar */
 
 
cpdf_translate($pdf, $radio + $margen, $radio + $margen);
 
cpdf_save($pdf);
 
cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);
 
 
/* trazos de los minutos */
 
cpdf_setlinewidth($pdf, 2.0);
  for (
$alpha = 0; $alpha < 360; $alpha += 6) {
  
cpdf_rotate($pdf, 6.0);
  
cpdf_moveto($pdf, $radio, 0.0);
  
cpdf_lineto($pdf, $radio-$margen/3, 0.0);
  
cpdf_stroke($pdf);
  }
 
 
cpdf_restore($pdf);
 
cpdf_save($pdf);
 
 
/* trazos de 5 minutos */
 
cpdf_setlinewidth($pdf, 3.0);
  for (
$alpha = 0; $alpha < 360; $alpha += 30) {
  
cpdf_rotate($pdf, 30.0);
  
cpdf_moveto($pdf, $radio, 0.0);
  
cpdf_lineto($pdf, $radio-$margen, 0.0);
  
cpdf_stroke($pdf);
  }

 
$ltime = getdate();

 
/* dibujar nuestra mano */
 
cpdf_save($pdf);
 
cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
 
cpdf_moveto($pdf, -$radio/10, -$radio/20);
 
cpdf_lineto($pdf, $radio/2, 0.0);
 
cpdf_lineto($pdf, -$radio/10, $radio/20);
 
cpdf_closepath($pdf);
 
cpdf_fill($pdf);
 
cpdf_restore($pdf);

 
/* dibujar la mano de minutos */
 
cpdf_save($pdf);
 
cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
 
cpdf_moveto($pdf, -$radio/10, -$radio/20);
 
cpdf_lineto($pdf, $radio * 0.8, 0.0);
 
cpdf_lineto($pdf, -$radio/10, $radio/20);
 
cpdf_closepath($pdf);
 
cpdf_fill($pdf);
 
cpdf_restore($pdf);

 
/* dibujar la mano de segundos */
 
cpdf_setrgbcolor($pdf, 1.0, 0.0, 0.0);
 
cpdf_setlinewidth($pdf, 2);
 
cpdf_save($pdf);
 
cpdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0));
 
cpdf_moveto($pdf, -$radio/5, 0.0);
 
cpdf_lineto($pdf, $radio, 0.0);
 
cpdf_stroke($pdf);
 
cpdf_restore($pdf);

 
/* dibujar un pequenyo circulo en el centro */
 
cpdf_circle($pdf, 0, 0, $radio/30);
 
cpdf_fill($pdf);

 
cpdf_restore($pdf);

 
cpdf_finalize_page($pdf, $conteo_paginas+1);
}

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

Ver también

Vea también la documentación de la extensión PDFlib.

Tabla de contenidos
cpdf_add_annotation -- Añade una anotación
cpdf_add_outline -- Añade una marca en la página actual
cpdf_arc -- Dibuja un arco
cpdf_begin_text -- Inicializa una sección de texto
cpdf_circle -- Dibuja un círculo
cpdf_clip -- Ajusta al camino actual
cpdf_close -- Cierra un documento PDF
cpdf_closepath_fill_stroke -- Cierra, llena y traza el camino actual
cpdf_closepath_stroke -- Cierra el camino y dibuja una línea a lo largo del camino
cpdf_closepath -- Cierra el camino
cpdf_continue_text -- Pone texto en la línea siguiente
cpdf_curveto -- Dibuja una curva
cpdf_end_text -- Finaliza una sección de texto
cpdf_fill_stroke -- LLena y traza el camino actual
cpdf_fill -- LLena el camino actual
cpdf_finalize_page -- Finaliza una página
cpdf_finalize -- Finaliza un documento
cpdf_global_set_document_limits -- Establece límites para un documento pdf
cpdf_import_jpeg -- Abre una imagen JPEG
cpdf_lineto -- Dibuja una línea
cpdf_moveto -- Define el punto actual
cpdf_newpath -- Comienza un nuevo camino
cpdf_open -- Abre un nuevo documento pdf
cpdf_output_buffer -- Pone el documento PDF en el buffer de memoria
cpdf_page_init -- Comienza una nueva página
cpdf_place_inline_image -- Situa una imagen en la página
cpdf_rect -- Dibuja un rectángulo
cpdf_restore -- Restaura un entorno guardado previamente
cpdf_rlineto -- Dibuja una línea
cpdf_rmoveto -- Define el punto actual
cpdf_rotate_text --  Establece el ángulo de rotación de un texto
cpdf_rotate -- Define la rotación
cpdf_save_to_file -- Escribe el documento PDF en un archivo
cpdf_save -- Guarda el entorno actual
cpdf_scale -- Define la escala
cpdf_set_action_url --  Establece un hiperenlace
cpdf_set_char_spacing -- Determina el espacio entre caracteres
cpdf_set_creator -- Define el campo creator en el documento PDF
cpdf_set_current_page -- Define la página actual
cpdf_set_font_directories --  Indica los directorios en los que se deben buscar las fuentes externas
cpdf_set_font_map_file --  Indica el mapeo que se va a emplear para asociar el nombre de la fuente con el nombre del archivo cuando se emplean fuentes externas
cpdf_set_font -- Selecciona la fuente y el tamaño actual
cpdf_set_horiz_scaling -- Define la escala horizontal del texto
cpdf_set_keywords -- Pone el valor del campo 'keywords'(palabras clave) de un documento PDF
cpdf_set_leading -- Define la distancias entre las líneas de texto
cpdf_set_page_animation -- Define el intervalo entre páginas
cpdf_set_subject -- Define el valor del campo subjet de un documento PDF
cpdf_set_text_matrix -- Define la matriz de texto
cpdf_set_text_pos -- Define la posición del texto
cpdf_set_text_rendering -- Determina cómo es presentado el texto
cpdf_set_text_rise -- Define la elevación del texto
cpdf_set_title -- Define el campo title de un documento PDF
cpdf_set_viewer_preferences --  Modo de visualización del documento en el visor
cpdf_set_word_spacing -- Define el espacio entre palabras
cpdf_setdash -- Define el patrón de la raya
cpdf_setflat -- Define la monotonía
cpdf_setgray_fill -- Pone el color de relleno al valor gris
cpdf_setgray_stroke -- Define el color para dibujar al valor gris
cpdf_setgray -- Pone el color de relleno y dibujo a gris
cpdf_setlinecap -- Define el parámetro linecap
cpdf_setlinejoin -- Define el parámetro linejoin
cpdf_setlinewidth -- Define la anchura de la línea
cpdf_setmiterlimit -- Define el límite del inglete
cpdf_setrgbcolor_fill -- Pone el color de relleno al valor de color rgb
cpdf_setrgbcolor_stroke -- Pone el color de dibujo al valor de color rgb
cpdf_setrgbcolor -- Pone el color de relleno y dibujo al valor de color rgb
cpdf_show_xy -- Muestra texto en la posición indicada
cpdf_show -- Muestra el texto en la posición actual
cpdf_stringwidth -- Devuelve la anchura del texto en la fuente actual
cpdf_stroke -- Dibuja una línea a lo largo del camino
cpdf_text -- Muestra texto con parámetros
cpdf_translate -- Define el sistema de origen de coordenadas


add a note add a note User Contributed Notes
Funciones ClibPDF
florent AT clairambault.fr
04-Jun-2006 04:11
There's an alternative way to generate PDF document, it's FPDF : FPDF is a PHP class which allows to generate PDF files with pure PHP, that is to say without using the PDFlib library. F from FPDF stands for Free: you may use it for any kind of usage and modify it to suit your needs.

So that you don't have to add any PHP library.
puterasalji at yahoo dot com
06-Apr-2003 08:32
I've finally found a way to display text

<?php
$radius
= 200;
$margin = 20;
$pagecount = 1;

$pdf = cpdf_open(0);

 
cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);

 
cpdf_translate($pdf, $radius + $margin, $radius + $margin);

 
cpdf_begin_text($pdf);
 
cpdf_set_font($pdf, "Arial", 30, "NULL");
 
cpdf_set_text_rendering($pdf, 1);
 
cpdf_text($pdf, "Yahoo!!", -198, 50);
 
cpdf_end_text($pdf);

 
/* minute strokes*/
 
for ($alpha = 0; $alpha < 90; $alpha += 6)
   {
      
cpdf_setrgbcolor($pdf,9.0,9.0,0.0);
  
cpdf_rotate($pdf, 6.0);
  
cpdf_moveto($pdf, $radius, 0.0);
  
cpdf_lineto($pdf, $radius-$margin/3, 0.0);
  
cpdf_stroke($pdf);

   }

cpdf_finalize($pdf);
Header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>

I'm not sure why, but the text appeared only after I've pasted the minute strokes draw function from clock.php example. I user the cpdf_translate to begin the x,y coordinate in the middle of the document

Citas célebres

La ambición es el único poder que puede luchar contra el amor.

Colley Cibber
Citas en tu mail
©Contenidos Gratis

Ilusiones Opticas
ilusion_optica_034.jpg
Contenidos Web

Chiste de... Niños
Que viene el coco

Un niño africano llega corriendo y le dice a su madre:

- ¡Mamá, el coco se ha llevado a papá!

- ¿Qué coco?

- El cocodrilo.
Chistes en tu mail
©ContenidosGratis

Humor Gráfico
humor_grafico_020.jpg
Contenidos Web

Inicio | Acción | Estrategia | Palabras | Puzzles | Solitarios | Foro Trucos
Cake ManiaCake Mania
Jugadores: 6835
Categoría del juego: Acción
Objetivo del juego: Ayuda a Jill a recuperar la pastelería de su abuela llevando su propia pastelería; consigue clientes y gana dinero.
Rainbow WebRainbow Web
Jugadores: 2199
Categoría del juego: Puzzles
Objetivo del juego: Rompe un pegajoso hechizo y salva un reino de fantasía en Rainbow Web. Tendrás toneladas de diversión mientras juegas a este mágico desafío para la mente.
Mahjongg FortunaMahjongg Fortuna
Jugadores: 12462
Categoría del juego: Solitarios
Objetivo del juego: Velocidad y habilidad mental son las armas más importantes en esta versión de un antiguo juego asiático. Despeja el tablero lo antes posible haciendo clic en las fichas iguales y gánate la fama eterna de la puntuación más alta.
Chainz 2Chainz 2
Jugadores: 6955
Categoría del juego: Puzzles
Objetivo del juego: Entra en el mundo de las combinaciones con Chainz 2: Relinked, emocionante secuela del exitazo del año pasado, Chainz. Gira eslabones y crea combinaciones de 3 ó más.
DeliciousDelicious
Jugadores: 4405
Categoría del juego: Acción
Objetivo del juego: ¿Eres un as de la multitarea? ¿Quieres que tus clientes estén contentos? ¡Pues Delicious es tu juego! Sacia el apetito de los clientes y tenlos contentos; ¡no te arriesgues!
BookwormBookworm
Jugadores: 4568
Categoría del juego: Palabras
Objetivo del juego: Junta las letras para formar palabras. ¡Las palabras más largas valen más puntos!
ZumaZuma
Jugadores: 4976
Categoría del juego: Acción
Objetivo del juego: Controla el ídolo de la rana de piedra de los antiguos Zuma en este intrigante enigma de acción. ¡Dispara bolas para formar conjuntos de tres, pero si dejas que lleguen a la calavera dorada morirás!
Jewel of AtlantisJewel of Atlantis
Jugadores: 3798
Categoría del juego: Puzzles
Objetivo del juego: Descubre la ciudad hundida de la Atlántida y busca valiosos tesoros. Viaja más allá de las profundidades del mar y vive trepidantes aventuras en Jewel of Atlantis.
Jewel QuestJewel Quest
Jugadores: 3727
Categoría del juego: Puzzles
Objetivo del juego: Convierte la arena de la antigua selva en oro tan rápido como puedas juntando grupos de 3 elementos. ¡Los grupos más grandes valen más puntos!
Bejeweled 2Bejeweled 2
Jugadores: 3659
Categoría del juego: Puzzles
Objetivo del juego: Con cuatro modos de juego únicos y fascinantes, nuevas piezas de juego explosivas e imponentes fondos planetarios, Bejeweled 2 es mucho más adictivo que nunca.
Contenidos gratis en tu webSiguiente >>

Fotos divertidas
fotos_increibles_0201.jpg
Contenidos Web
microrobots avion deportes riesgo recetas cocina canaria juegos online gratis moto motociclismo horoscopos naranjas valencianas surf canarias montañismo ciudades turismo postales gratis library Horoscopos Diarios Windsurf Canarias
fregadero microondas placa electrica bañopreparar camper pantalla plananevera compresor electricacamper fiat ducato camper baño quimicomampara enrollable bañocamper aire climatizadofurgoneta surf windsurffurgoneta surf windsurftelevisor furgonetas camperfurgonetas camper cama

Sudoku del día
Nivel de dificultad: Fácil



Cómo jugar:
El juego consiste en colocar los números del 1 al nueve de tal forma que no se repita el mismo número en la columna, fila y caja (bloques 3x3 enmarcados).

©Contenidos Gratis | Sudoku en tu mail
Sucedió el...

30 de agosto de 1617

Fallece Santa Rosa de Lima, por la que se celebra el "Día de la Patrona de América".
Efemérides en tu mail
©Contenidos Gratis
windsurf canarias youtube porno canarias baleares valencia madrid