PHP  
downloads | documentation | faq | getting help | | php.net sites | links 
search for in the  
previousmethod_existscpdf_add_annotationnext
Last updated: Tue, 11 Jun 2002
view this page in Printer friendly version | English | Brazilian Portuguese | Czech | Dutch | Finnish | German | Hungarian | Italian | Japanese | Korean | Polish | Romanian | Russian | Spanish | Turkish

X. ClibPDF

L'extension ClibPDF vous permet de cr�er des documents PDF avec PHP. Elle est disponible en t�l�chargement sur le site , mais requiert l'achat d'une licence pour utilisation commerciale. Les fonctionnalit�s et API de ClibPDF sont tr�s similaires � PDFlib.

Cette documentation devrait �tre lue avec le manuel ClibPDF sous la main, car il est beaucoup plus d�taill�.

Beaucoup de fonctions sont natives de ClibPDF et se retrouvent dans le module PHP, et tout comme pdflib, elles ont le m�me nom. Toutes les fonctions, hormis cpdf_open() utilisent un pointeur sur un document comme premier param�tre. Actuellement, ce pointeur n'est pas utilis� en interne, car ClibPDF ne supporte pas la cr�ation de plusieurs documents PDF simultan�ment. En fait, il ne vaut mieux pas l'envisager, car les r�sultats sont al�atoires. Je ne veux m�me pas imaginer les probl�mes qui pourrait se poser avec les environnements multi-t�ches. Selon l'auteur de ClibPDF, cette situation va changer dans les prochaines versions (lorsque cette documentation a �t� traduite, c'�tait la version 1.10). Si vous avez besoin de cette fonctionnalit�, utilisez pdflib.

Note�: La fonction cpdf_set_font() a chang� depuis le PHP 3.0 pour supporter les polices asiatiques. Le param�tre d'encodage n'est plus un entier, mais une cha�ne.

Une caract�ristique pratique de ClibPDF (et aussi de PDFlib) est celle de cr�er le document PDF en m�moire, sans fichiers temporaires. ClibPDF permet aussi de passer les coordonn�es avec une unit� pr�d�finie (ce qui peut �tre simul� avec pdf_translate() de la librairie PDFlib).

Un autre atout de ClibPDF est que chaque page peut �tre modifi�e � tout moment m�me si une nouvelle page a �t� ouverte. La fonction cpdf_set_current_page() vous permet de quitter temporairement une page, et d'en modifier une autre.

La plupart des fonctions sont tr�s simples d'emploi. Le plus difficile est probablement de cr�er un document PDF simple. L'exemple suivant devrait vous aider � d�marrer. La page contient du texte qui utilise la police "Times-Roman" en taille 30, outlined. Le texte est soulign�.

Exemple 1. Exemple simple ClibPDF

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

La distribution pdflib contient un exemple plus complet, qui cr�e des s�ries de pages avec une horloge. Voici cet exemple convertit en script PHP qui utilise l'extension ClibPDF :

Exemple 2. Exemple pdfclock de la distribution pdflib 2.0

<?php
$radius = 200;
$margin = 20;
$pagecount = 40;
$pdf = cpdf_open(0);
cpdf_set_creator($pdf, "pdf_clock.php3");
cpdf_set_title($pdf, "Analog Clock");
while($pagecount-- > 0) {
  cpdf_page_init($pdf, $pagecount+1, 0, 2 * ($radius + $margin), 2 * ($radius + $margin), 1.0);
  cpdf_set_page_animation($pdf, 4, 0.5, 0, 0, 0);  /* wipe */
  cpdf_translate($pdf, $radius + $margin, $radius + $margin);
  cpdf_save($pdf);
  cpdf_setrgbcolor($pdf, 0.0, 0.0, 1.0);
  /* indications des minutes */
  cpdf_setlinewidth($pdf, 2.0);
  for ($alpha = 0; $alpha < 360; $alpha += 6)
    {
    cpdf_rotate($pdf, 6.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin/3, 0.0);
    cpdf_stroke($pdf);
    }
  cpdf_restore($pdf);
  cpdf_save($pdf);
  /* Indications des 5 minutes */
  cpdf_setlinewidth($pdf, 3.0);
  for ($alpha = 0; $alpha < 360; $alpha += 30)
  {
    cpdf_rotate($pdf, 30.0);
    cpdf_moveto($pdf, $radius, 0.0);
    cpdf_lineto($pdf, $radius-$margin, 0.0);
    cpdf_stroke($pdf);
  }
  $ltime = getdate();
  /* aiguille des heures */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['minutes']/60.0) + $ltime['hours'] - 3.0) * 30.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius/2, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);
  /* aiguille des minutes */
  cpdf_save($pdf);
  cpdf_rotate($pdf, -(($ltime['seconds']/60.0) + $ltime['minutes'] - 15.0) * 6.0);
  cpdf_moveto($pdf, -$radius/10, -$radius/20);
  cpdf_lineto($pdf, $radius * 0.8, 0.0);
  cpdf_lineto($pdf, -$radius/10, $radius/20);
  cpdf_closepath($pdf);
  cpdf_fill($pdf);
  cpdf_restore($pdf);
  /* aiguille des secondes */
  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, -$radius/5, 0.0);
  cpdf_lineto($pdf, $radius, 0.0);
  cpdf_stroke($pdf);
  cpdf_restore($pdf);
  /* Un petit cercle au centre */
  cpdf_circle($pdf, 0, 0, $radius/30);
  cpdf_fill($pdf);
  cpdf_restore($pdf);
  cpdf_finalize_page($pdf, $pagecount+1);
}
cpdf_finalize($pdf);
header("Content-type: application/pdf");
cpdf_output_buffer($pdf);
cpdf_close($pdf);
?>
Table des mati�res
cpdf_add_annotation -- Ajoute une annotation.
cpdf_add_outline -- Ajoute un signet � la page courante.
cpdf_arc -- Dessine un arc de cercle.
cpdf_begin_text -- D�marre une section de texte.
cpdf_circle -- Dessine un cercle.
cpdf_clip -- Aligne les dessins sur le chemin courant.
cpdf_close -- Ferme un fichier PDF.
cpdf_closepath -- Ferme le chemin.
cpdf_closepath_fill_stroke -- Remplit le chemin, dessine le bord et ferme le chemin.
cpdf_closepath_stroke --  Ferme le fichier et dessine une ligne le long du chemin.
cpdf_continue_text -- Imprime le texte � la ligne suivante.
cpdf_curveto -- Dessine une courbe.
cpdf_end_text -- Termine une section de texte.
cpdf_fill -- Remplit le chemin courant.
cpdf_fill_stroke -- Remplit le chemin, et dessine le bord.
cpdf_finalize -- Termine un document.
cpdf_finalize_page -- Termine une page.
cpdf_global_set_document_limits -- Fixe les limites d'un document PDF.
cpdf_import_jpeg -- Ouvre une image JPEG.
cpdf_lineto -- Dessine une ligne.
cpdf_moveto -- Fixe le point courant.
cpdf_newpath -- Commence un nouveau chemin
cpdf_open -- Ouvre un nouveau document PDF.
cpdf_output_buffer -- Outputs the pdf document in memory buffer
cpdf_page_init -- Starts new page
cpdf_place_inline_image -- Places an image on the page
cpdf_rect -- Draw a rectangle
cpdf_restore -- Restaure un environnement.
cpdf_rlineto -- Dessine une ligne, relativement.
cpdf_rmoveto -- Fixe le point courant relativement.
cpdf_rotate -- Effectue une rotation.
cpdf_rotate_text --  Sets text rotation angle
cpdf_save -- Sauve l'environnement courant.
cpdf_save_to_file -- Ecrit un document PDF dans un fichier.
cpdf_scale -- Modifie l'�chelle.
cpdf_set_action_url --  Sets hyperlink
cpdf_set_char_spacing -- Fixe l'espacement des caract�res.
cpdf_set_creator -- Fixe le cr�ateur d'un document PDF.
cpdf_set_current_page -- Fixe la page courante.
cpdf_set_font -- S�lectionne la police courante et sa taille.
cpdf_set_font_directories --  Sets directories to search when using external fonts
cpdf_set_font_map_file --  Sets fontname to filename translation map when using external fonts
cpdf_set_horiz_scaling -- Fixe l'�chelle horizontale du texte.
cpdf_set_keywords -- Fixe les mot cl�s d'un document PDF.
cpdf_set_leading -- Fixe la distance entre deux lignes.
cpdf_set_page_animation -- Fixe l'animation de la transition entre les pages.
cpdf_set_subject -- Fixe le sujet d'un document PDF.
cpdf_set_text_matrix -- Fixe la matrice du texte.
cpdf_set_text_pos -- Fixe la position du texte.
cpdf_set_text_rendering -- D�termine le rendu du texte.
cpdf_set_text_rise -- Fixe l'�l�vation du texte.
cpdf_set_title -- Fixe le titre d'un document PDF.
cpdf_set_viewer_preferences --  How to show the document in the viewer
cpdf_set_word_spacing -- Fixe l'espacement des mots.
cpdf_setdash -- Fixe le motif de pointill�.
cpdf_setflat -- Fixe la platitude (flatness).
cpdf_setgray --  Modifie un niveau de gris comme couleur de dessin et de remplissage.
cpdf_setgray_fill --  Modifie le niveau de gris comme couleur de remplissage.
cpdf_setgray_stroke -- Choisit un niveau de gris comme couleur de dessin.
cpdf_setlinecap -- Fixe le param�tre linecap.
cpdf_setlinejoin -- Fixe le param�tre linejoin.
cpdf_setlinewidth -- Fixe la largeur de ligne.
cpdf_setmiterlimit -- Fixe le param�tre miter limit.
cpdf_setrgbcolor --  Choisit une couleur rgb comme couleur de dessin et de remplissage.
cpdf_setrgbcolor_fill -- Choisit une couleur rgb comme couleur de remplissage.
cpdf_setrgbcolor_stroke -- Choisit une couleur rgb comme couleur de dessin.
cpdf_show -- Imprime un texte � la position courante.
cpdf_show_xy -- Affiche un texte � une position.
cpdf_stringwidth -- Retourne la taille de la cha�ne.
cpdf_stroke -- Dessine une ligne le long du chemin.
cpdf_text -- Imprime un texte avec des options.
cpdf_translate --  Modifie l'origine du syst�me de coordonn�es.
User Contributed Notes
ClibPDF
add a note about notes
daniel[at]lorch.cc
21-Feb-2002 11:50

If you don't want to pay for the library or your hoster does not have it
installed, have a look at "PHP pdf Class":


add a note about notes
previousmethod_existscpdf_add_annotationnext
Last updated: Tue, 11 Jun 2002
show source | credits | stats | mirror sites:  
Copyright © 2001, 2002 The PHP Group
All rights reserved.
This mirror generously provided by:
Last updated: Sun Jul 7 16:31:42 2002 CEST