Index: phpdoc/fr/functions/pdf.xml diff -u phpdoc/fr/functions/pdf.xml:1.1 phpdoc/fr/functions/pdf.xml:1.2 --- phpdoc/fr/functions/pdf.xml:1.1 Fri Jul 21 03:27:50 2000 +++ phpdoc/fr/functions/pdf.xml Fri Nov 24 03:06:50 2000 @@ -1,2271 +1,2516 @@ - - Fonctions PDF - PDF - - - - - Vous disposez de fonctions PDF en PHP pour créer des fichiers PDF , pour peu que - vous ayez la bibliothèque PDF de Thomas Merz (disponible à : - &url.pdf; (site anglais)). Vous aurez aussi besoin - des librairies JPEG library, - the TIFF library, pour compiler cette librairie. - Si vous utilisez pdflib 2.01, vérifiez l'installation de la librairie. - Il ne devrait y avoir qu'un fichier (ou lien) : libPDF.so. La version 2.01 - ne fait que créer une librairie appelée libpdf2.01.so, qui ne peut être trouvée - lors du link du programme de test, lors de la configuration. Il vous faudra faire - ce lien vous même, de libPDF.so vers libpdf2.01.so. - - - La version 2.20 de pdflib a introduit beaucoup de modifications dans ses API pour - supporter les polices chinoises et japonaises. Cela modifie malheureusement les API - du module PHP4 (mais pas le 3). Utilisez pdflib 2.20 qui gère correctement la - mémoire lors de la génération de fichier PDF. Jusqu'à la publication de la version - 3.0, pdflib peut être un peu instable. Le paramètre d'encodage de - pdf_set_font a été changé en chaîne. Ainsi, à la place - de '4', vous devrez utiliser 'winansi'. - - - Si vous utilisez pdflib 2.30 la fonction pdf_set_text_matrix - a disparu. Elle n'est plus supportée. En général, c'est une bonne idée de consulter - les notices de publications, pour connaître les modifications qui sont intervenues. - - - Reportez vous à l'excellente documentation de pdflib, disponible - avec la distribution de pdflib ou à : - http://www.ifconnection.de/~tm/software/pdflib/PDFlib-0.6.PDF. - C'est une introduction très pratique des capacités de pdflib. La plus part des - fonctions de pdflib se retrouvent dans PHP sous le même nom. De même, les - paramètres sont identiques. Vous devez connaître les concepts de base de PDF ou de - Postscript pour utiliser efficacement ce module. Toutes les longueurs et - coordonnées sont mesurées en points Postscript points. Il y a généralement - 72 points PostScript par pouce, mais cela dépend en fait de la résolution - d'affichage. - - - Il y a un autre module PHP pour créer des document PDF, basé sur la bibliothèque - FastIO's's ClibPDF. - Les API sont légèrement différentes. Reportez vous à la section - ClibPDF functions pour plus de détails. - - - Actuellement, toutes les versions de la bibliothèque pdflib sont supportées. - Il est préférable d'utiliser la nouvelle version, étant donné qu'elle comporte - moins de bugs, et propose plus de fonctions que l'ancienne version. Malheureusement, - les modifications dans les API de la bibliothèque ont été si importantes que - certaines fonctions PHP ont dues être modifiées. Voici une petite liste des - changements : - - - - - La structure Info n'existe plus. Par conséquent, - pdf_get_info est obsolète et les fonctions - pdf_set_info_creator, pdf_set_info_title, - pdf_set_info_author, pdf_set_info_subject et - pdf_set_info_keywords ne prennent plus de structure info - comme premier paramètre, mais le document PDF. Cela signifie aussi que le - document PDF doit être ouvert pour pouvoir appeler ces fonctions. - - - - - La manière d'ouvrir un document a changé. La fonction - pdf_open ne prend plus qu'un paramètre, qui est le pointeur - de fichier, obtenu avec la fonction fopen. - - - - - - Il y a aussi quelques nouveautés avec la version 2.01 de pdflib qui devrait être - couvertes par PHP. Quelques fonctions ne sont plus utilisées (e.g. - pdf_put_image). Ne soyez pas surpris d'obtenir une alerte... - - - - Le module PDF introduit deux nouveaux types de variables (avec pdflib 2.x, - seulement un nouveau type) C'est pdfdoc et pdfinfo (pdfinfo n'existe pas avec - pdflib 2.x. pdfdoc est un pointeur de document PDF, et presque toutes les - fonctions en ont besoin comme premier paramètre. pdfinfo contient des méta - données à propos du document PDF document. Il doit exister avant d'appeler - (pdfinfo n'existe pas si pdflib 2.x est utilisé. - pdfdoc est un pointeur sur un document PDF et presque - toutes les fonctions le requière comme premier paramètre. - pdfinfo contient des méta-données sur les documents PDF. - Elles doivent être fixée avant d'utiliser pdf_open. - - - - - La suite n'est vraie qu'avec pdflib 0.6. Lisez le manuel de pdflib - pour les nouveautés des nouvelles versions. - - - - Pour sauver des données dans un fichier PDF, vous devez fournir un fichier de - type afm pour chaque police de caractère. Les fichiers Afm contiennent les - définitions des polices Postscript. Par défaut, ces fichiers afm sont recherché - dans un dossier nommé 'fonts', près du dossier qui contient le script éxécuté. - (Encore une fois, ceci était vrai avec pdflib 0.6, mais ne le sera pas - nécessairement avec les nouvelles versions). - - - - La plupart des fonctions sont plutôt simples à utiliser. Le plus difficile est - probablement la création d'un document PDF simple. Les exemples suivant vous - aideront à repérer les premiers éléments. Ils utilisent les fonctions accessibles - avec pdflib 0.6. Ils créent un exemple de test, test.pdf, d'une seule page. - La page contient le texte "Times-Roman" en police renforcée, souligné, de 30 pt. - - - Creation d'un document PDF avec pdflib 0.6 - -<?php -$fp = fopen("test.pdf", "w"); -$info = PDF_get_info(); -pdf_set_info_author($info, "Uwe Steinmann"); -PDF_set_info_title($info, "Test for PHP wrapper of PDFlib 0.6"); -PDF_set_info_author($info, "Name of Author"); -pdf_set_info_creator($info, "See Author"); -pdf_set_info_subject($info, "Testing"); -$pdf = PDF_open($fp, $info); -PDF_begin_page($pdf, 595, 842); -PDF_add_outline($pdf, "Page 1"); -pdf_set_font($pdf, "Times-Roman", 30, 4); -pdf_set_text_rendering($pdf, 1); -PDF_show_xy($pdf, "Times Roman outlined", 50, 750); -pdf_moveto($pdf, 50, 740); -pdf_lineto($pdf, 330, 740); -pdf_stroke($pdf); -PDF_end_page($pdf); -PDF_close($pdf); -fclose($fp); -echo "<A HREF=getPDF.php3>finished</A>"; -?> - - - - - - Le script getPDF.php3 ne fait que produire un fichier PDF. - - - -<?php -$fp = fopen("test.pdf", "r"); -header("Content-type: application/pdf"); -fpassthru($fp); -fclose($fp); -?> - - - - La même chose avec pdflib 2.x ressemble à ce qui suit : - - - Création d'un document PDF avec pdflib 2.x - -<?php -$fp = fopen("test.pdf", "w"); -$pdf = PDF_open($fp); -pdf_set_info_author($pdf, "Uwe Steinmann"); -PDF_set_info_title($pdf, "Test for PHP wrapper of PDFlib 2.0"); -PDF_set_info_author($pdf, "Name of Author"); -pdf_set_info_creator($pdf, "See Author"); -pdf_set_info_subject($pdf, "Testing"); -PDF_begin_page($pdf, 595, 842); -PDF_add_outline($pdf, "Page 1"); -pdf_set_font($pdf, "Times-Roman", 30, 4); -pdf_set_text_rendering($pdf, 1); -PDF_show_xy($pdf, "Times Roman outlined", 50, 750); -pdf_moveto($pdf, 50, 740); -pdf_lineto($pdf, 330, 740); -pdf_stroke($pdf); -PDF_end_page($pdf); -PDF_close($pdf); -fclose($fp); -echo "<A HREF=getPDF.php3>finished</A>"; -?> - - - Ce script est identique à celui ci-dessus. - - - La distribution de pdflib contient d'autres exemples plus élaborés, qui crée - des pages plus consistantes. Cet exemple convertit en PHP, et en utilisant - pdflib 2.x ressemble à ce qui suit : - (Vous pouvez retrouver cet exemple dans la documentation de - clibpdf module): - - - Exemple pdfclock de la distribution pdflib 2.x - -<?php -$pdffilename = "clock.pdf"; -$radius = 200; -$margin = 20; -$pagecount = 40; - -$fp = fopen($pdffilename, "w"); -$pdf = pdf_open($fp); -pdf_set_info_creator($pdf, "pdf_clock.php3"); -pdf_set_info_author($pdf, "Uwe Steinmann"); -pdf_set_info_title($pdf, "Analog Clock"); - -while($pagecount-- > 0) { - pdf_begin_page($pdf, 2 * ($radius + $margin), 2 * ($radius + $margin)); - - pdf_set_transition($pdf, 4); /* wipe */ - pdf_set_duration($pdf, 0.5); - - pdf_translate($pdf, $radius + $margin, $radius + $margin); - pdf_save($pdf); - pdf_setrgbcolor($pdf, 0.0, 0.0, 1.0); - - /* minutes */ - pdf_setlinewidth($pdf, 2.0); - for ($alpha = 0; $alpha < 360; $alpha += 6) { - pdf_rotate($pdf, 6.0); - pdf_moveto($pdf, $radius, 0.0); - pdf_lineto($pdf, $radius-$margin/3, 0.0); - pdf_stroke($pdf); - } - - pdf_restore($pdf); - pdf_save($pdf); - - /* 5 minutes */ - pdf_setlinewidth($pdf, 3.0); - for ($alpha = 0; $alpha < 360; $alpha += 30) { - pdf_rotate($pdf, 30.0); - pdf_moveto($pdf, $radius, 0.0); - pdf_lineto($pdf, $radius-$margin, 0.0); - pdf_stroke($pdf); - } - - $ltime = getdate(); - - /* Dessine les heures */ - 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/2, 0.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.8, 0.0); - pdf_lineto($pdf, -$radius/10, $radius/20); - pdf_closepath($pdf); - pdf_fill($pdf); - pdf_restore($pdf); - - /* draw second hand */ - pdf_setrgbcolor($pdf, 1.0, 0.0, 0.0); - pdf_setlinewidth($pdf, 2); - pdf_save($pdf); - pdf_rotate($pdf, -(($ltime['seconds'] - 15.0) * 6.0)); - pdf_moveto($pdf, -$radius/5, 0.0); - pdf_lineto($pdf, $radius, 0.0); - pdf_stroke($pdf); - pdf_restore($pdf); - - /* draw little circle at center */ - pdf_circle($pdf, 0, 0, $radius/30); - pdf_fill($pdf); - - pdf_restore($pdf); - - pdf_end_page($pdf); -} - -$pdf = pdf_close($pdf); -fclose($fp); -echo "<A HREF=getPDF.php3?filename=".$pdffilename.">finished</A>"; -?> - - - Le script getPDF.php3 ne fait qu'afficher le fichier PDF. - -<?php -$fp = fopen($filename, "r"); -header("Content-type: application/pdf"); -fpassthru($fp); -fclose($fp); -?> - - - - - - - PDF_get_info - Retourne la structure d'info par défaut d'un document PDF. - - - Description - - info pdf_get_info - string filename - - - PDF_get_info retourne une structure d'information de document - PDF. Cette structure est la structure par défaut. Elle devra être remplie avec - des informations adéquates, telle que l'auteur, le sujet etc.... - - - - Cette fonction n'est pas disponible si pdflib 2.x est activée. - - - - - - Voir aussi PDF_set_info_creator, - PDF_set_info_author, - PDF_set_info_keywords, - PDF_set_info_title, - PDF_set_info_subject. - - - - - - PDF_set_info_creator - Affecte le champs titre de la structure info. - - - Description - - void pdf_set_info_creator - info info - string creator - - - PDF_set_info_creator affecte le champs titre de la - structure info d'un document PDF. Cette fonction doit être appelée après - PDF_get_info et avant PDF_open. - L'appeler après PDF_open sera sans effet sur le document. - - - - Cette fonction ne fait pas partie de PDF library. - - - - - - Cette fonction prend un autre type de premier paramètre si pdflib 2.x est activé. - Le premier paramètre doit alors être un identifiant de document PDF document, - retourné par pdf_open. Par conséquent, - pdf_open doit avoir été appelé avant cette fonction. - - - - - - Voir aussi PDF_get_info, - PDF_set_info_keywords, - PDF_set_info_title, - PDF_set_info_subject. - - - - - - - - PDF_set_info_title - Affecte le champs créateur de la structure info. - - - Description - - void pdf_set_info_title - info info - string title - - - PDF_set_info_title modifie le sujet d'un document PDF. - Cette fonction doit être appelée après PDF_get_info mais - avant PDF_open. Si vous l'appelez après - PDF_open, elle n'aura pas d'effet sur le document. - - - - Cette fonction ne fait pas partie de PDF library. - - - - - - Cette fonction prend un autre type de premier paramètre si pdflib 2.x est activé. - Le premier paramètre doit alors être un identifiant de document PDF document, - retourné par pdf_open. Par conséquent, - pdf_open doit avoir été appelé avant cette fonction. - - - - - - Voir aussi PDF_get_info, - PDF_set_info_creator, - PDF_set_info_author, - PDF_set_info_keywords, - PDF_set_info_subject. - - - - - - - - PDF_set_info_subject - Affecte le champs créateur de la structure info. - - - Description - - void pdf_set_info_subject - info info - string subject - - - PDF_set_info_subject modifie le sujet d'un document PDF. - Cette fonction doit être appelée après PDF_get_info et - avant PDF_open, sinon, elle sera sans effet. - - - - Cette fonction ne fait pas partie de PDF library. - - - - - - Cette fonction prend un autre type de premier paramètre si pdflib 2.x est activé. - Le premier paramètre doit alors être un identifiant de document PDF document, - retourné par pdf_open. Par conséquent, - pdf_open doit avoir été appelé avant cette fonction. - - - - - - Voir aussi PDF_get_info, - PDF_set_info_creator, - PDF_set_info_author, - PDF_set_info_title, - PDF_set_info_keywords. - - - - - - - - PDF_set_info_keywords - Affecte le champs mots-clé de la structure info. - - - Description - - void pdf_set_info_keywords - info info - string keywords - - - PDF_set_info_subject affecte le champs mots-clé de la - structure d'un document PDF. Cette fonction doit être appelée après - PDF_get_info et avant PDF_open, - sinon, elle sera sans effet. - - - - Cette fonction ne fait pas partie de PDF library. - - - - - - Cette fonction prend un autre type de premier paramètre si pdflib 2.x est activé. - Le premier paramètre doit alors être un identifiant de document PDF document, - retourné par pdf_open. Par conséquent, - pdf_open doit avoir été appelé avant cette fonction. - - - - - - Voir aussi PDF_get_info, - PDF_set_info_creator, - PDF_set_info_author, - PDF_set_info_title, - PDF_set_info_subject. - - - - - - - - PDF_set_info_author - Fills the author field of the info structure. - - - Description - - void pdf_set_info_author - info info - string author - - - PDF_set_info_author affecte le champs auteur de la - structure d'un document PDF. Cette fonction doit être appelée après - PDF_get_info et avant PDF_open, sinon, - elle sera sans effet. - - - - Cette fonction ne fait pas partie de PDF library. - - - - - - Cette fonction prend un autre type de premier paramètre si pdflib 2.x est activé. - Le premier paramètre doit alors être un identifiant de document PDF document, - retourné par pdf_open. Par conséquent, - pdf_open doit avoir été appelé avant cette fonction. - - - - - - Voir aussi PDF_get_info, - PDF_set_info_creator, - PDF_set_info_keywords, - PDF_set_info_title, - PDF_set_info_subject. - - - - - - - - PDF_open - Ouvre un nouveau document PDF. - - - Description - - int pdf_open - int file - int info - - - PDF_open ouvre un nouveau document PDF. Le fichier - correspondant doit avoir été ouvert avec fopen et le - pointeur de fichier est passé en argument file. - info est une structure info créée par - pdf_get_info. Cette structure info sera effacée à partir - de cette fonction. - - - - Cette fonction ne fait pas partie de PDF library. - - - - - - Cette fonction prend un autre type de premier paramètre si pdflib 2.x est activé. - Le premier paramètre doit alors être un identifiant de document PDF document, - retourné par pdf_open. Par conséquent, - pdf_open doit avoir été appelé avant cette fonction. - - - - - - Voir aussi fopen, - PDF_get_info, - PDF_close. - - - - - - - PDF_close - Ferme un document PDF. - - - Description - - void pdf_close - int pdf document - - - PDF_close ferme un document PDF. - - - A cause de la programmation buggée de pdflib 0.6 fermer un document PDF ferme - aussi le fichier associé. Cela ne devrait pas être le cas, puisque pdflib n'a - pas ouvert le fichier, mais s'attend à un fichier déjà ouvert, lorsque - PDF_open est appelée. Par conséquent, il ne devrait pas - fermer le fichier. Afin de résoudre de problème, mettez en commentaire la ligne - 190 dans le fichier p_basic.c de pdflib 0.6 jusqu'à ce qu'une nouvelle version - corrige ce bug. - - - - Cette fonction n'a pas besoin de patch avec pdflib, si pdflib 2.0 est activée. - - - - Voir aussi PDF_open, - fclose. - - - - - - - - PDF_begin_page - Commence une nouvelle page. - - - Description - - void pdf_begin_page - int pdf document - double height - double width - - - PDF_begin_page commence une nouvelle page avec la - taille height et la largueur - width. - - - - Voir aussi PDF_end_page. - - - - - - - - PDF_end_page - Termine une page. - - - Description - - void pdf_end_page - int pdf document - - - PDF_end_page termine une page. Une fois qu'une page a été - fermée, elle ne peut pas être modifiée. - - - - Voir aussi PDF_begin_page. - - - - - - - - PDF_show - Affiche un texte à la position courante. - - - Description - - void pdf_show - int pdf document - string text - - - PDF_show affiche le texte text - avec la position courante, et avec la police courante. - - - - Voir aussi PDF_show_xy, - PDF_set_text_pos, - PDF_set_font. - - - - - - - - PDF_show_boxed - Affiche un texte dans un rectangle. - - - Description - - void pdf_show_boxed - int pdf document - string text - double x-coor - double y-coor - double width - double height - string mode - - - PDF_show_boxed affiche le texte text - dans un rectangle, dont le coin inférieur gauche est aux coordonnées - (x-coor, y-coor). - Les dimensions du rectangle sont height et - width. Le paramètre mode indique le - type de text. Si width et - height sont à zéro, le mode mode - peut être "left" (gauche), "right" (droite) ou "center"(centré). - width ou height sont différents - peuvant prendre les valeurs de "justify" (justification) ou "fulljustify" - (justification complète). - - - - Voir aussi PDF_show, - PDF_show_xy. - - - - - - - - PDF_show_xy - Affiche un texte à une position donnée. - - - Description - - void pdf_show_xy - int pdf document - string text - double x-coor - double y-coor - - - PDF_show_xy affiche le texte text - à la position donnée par les coordonnées (x-coor, - y-coor). - - - - Voir aussi PDF_show. - - - - - - - - PDF_set_font - Sélectionne la police et sa taille. - - - Description - - void pdf_set_font - int pdf document - string font name - double size - string encoding - int embed - - - PDF_set_font sélectionne la police, sa taille et son encodage. - Il vous faudra fournir des fichiers Adobe Font Metrics (afm) comme police, dans le - dossier de polices (par défaut ./fonts). Si vous utilisez pdflib 0.6, vous devrez - fournir des fichiers Adobe Font Métric (afm-files) pour les polices, dans le - chemin de police ( par défaut, ./fonts). Si vous utilisez php versin 3 ou une - version plus ancienne que la version 2.20 de pdflib, le quatrième paramètre - encoding peut prendre les valeurs suivantes : - 0 = builtin, 1 = pdfdoc, 2 = macroman, 3 = macexpert, 4 = winansi. - Un encodage plus grand que 4 et inférieur à 0 sera transformé en 'winansi'. - 'winansi' est souvent un bon choix. - - Si vous utilisez PHP version 4 et une version plus ancienne que la version 2.20 - de pdflib le quatrième paramètre encoding est une chaîne : - 'builtin', 'pdfdoc', 'macroman', 'macexpert', 'winansi'. Si le dernier paramètre - est à 1, la police est intégrée dans le document. Sinon, elle ne le sera pas. - Incorporer une police dans un document est un bonne idée si la police n'est pas - répandue, ou si vous ne pouvez pas vous assurez que le la personne qui regardera - votre document peut accéder à cette police. - - - - - Cette fonction doit être appelée après PDF_begin_page - pour créer un document PDF valide. - - - - - - - - - PDF_set_leading - Choisi la distance entre les lignes du textes. - - - Description - - void pdf_set_leading - int pdf document - double distance - - - PDF_set_leading permet de choisir la distance entre les - lignes du texte. Cette valeur sera utilisée si du texte est affiché par - PDF_continue_text. - - - - Voir aussi PDF_continue_text. - - - - - - - - PDF_set_parameter - Fixe certains paramètres. - - - Description - - void pdf_set_parameter - int pdf document - string name - string value - - - PDF_set_parameter fixe certaines valeurs de pdglib. - - - - - - - - PDF_set_text_rendering - Determine le rendu du texte. - - - Description - - void pdf_set_text_rendering - int pdf document - int mode - - - PDF_set_text_rendering determine le rendu du texte. Les - valeurs possibles pour mode sont 0=fill text (texte plein), - 1=stroke text (???), 2=fill and stroke text (texte plein et stroke), - 3=invisible, 4=texte plein, et ajouté au chemin, 5=stroke text, ajouté au chemin, - 6=texte plein et stroke, ajouté au chemin, 7=ajouté au chemin. - - - - - - - PDF_set_horiz_scaling - Fixe l'echelle horizontale du texte. - - - Description - - void pdf_set_horiz_scaling - int pdf document - double scale - - - PDF_set_horiz_scaling fixe l'échelle horizontale du texte, - à scale en pourcentage. - - - - - - - PDF_set_text_rise - Choisi l'élévation du texte. - - - Description - - void pdf_set_text_rise - int pdf document - double rise - - - PDF_set_text_rise fixe l'élévation du texte à - rise points. - - - - - - - PDF_set_text_matrix - Fixe la matrice de texte. - - - Description - - void pdf_set_text_matrix - int pdf document - array matrix - - - PDF_set_text_matrix choisi la matrice de texte : la matrice - de texte determine les transformations de la police courante. La matrice est un - tableau de 6 éléments. - - - - - - - PDF_set_text_pos - Fixe la position du texte. - - - Description - - void pdf_set_text_pos - int pdf document - double x-coor - double y-coor - - - PDF_set_text_pos choisi la position du texte qui sera - utilisée lors du prochain pdf_show. - - - Voir aussi PDF_show, - PDF_show_xy. - - - - - - - PDF_set_char_spacing - Fixe l'espacement des caractères. - - - Description - - void pdf_set_char_spacing - int pdf document - double space - - - PDF_set_char_spacing fixe l'espacement des caractères. - - - Voir aussi PDF_set_word_spacing, - PDF_set_leading. - - - - - - - - PDF_set_word_spacing - Fixe l'espacement des mots. - - - Description - - void pdf_set_word_spacing - int pdf document - double space - - - PDF_set_word_spacing fixe l'espacement des mots. - - - - Voir aussi PDF_set_char_spacing, - PDF_set_leading. - - - - - - - - PDF_skew - Modifie le système de coordonnées. - - - Description - - void pdf_skew - int pdf document - double alpha - double beta - - - PDF_skew modifie le système de coordonnées, en faisant - une rotation d'angle alpha pour les (x) et d'angle - beta pour les (y), en degrés. - alpha et beta ne peuvent pas - pendre les valeurs de 90 ou 270 degrés. - - - - - - - - PDF_continue_text - Affiche un texte sur une nouvelle ligne. - - - Description - - void pdf_continue_text - int pdf document - string text - - - PDF_continue_text affiche le texte - text sur une nouvelle ligne. La distance entre les - lignes peut être choisie avec PDF_set_leading. - - - - Voir aussi PDF_show_xy, - PDF_set_leading, - PDF_set_text_pos. - - - - - - - - PDF_stringwidth - Retourne la largeur du texte avec la police courante. - - - Description - - double pdf_stringwidth - int pdf document - string text - - - PDF_stringwidth retourne la largeur du texte - text avec la police courante. Il faut qu'une police ait - été choisie auparavant. - - - - Voir aussi PDF_set_font. - - - - - - - - PDF_save - Enregistre l'environnement courant. - - - Description - - void pdf_save - int pdf document - - - PDF_save enregistre l'environnement courant. Le fonctionnement - est identique à la commande postscript gsave. Très pratique si vous voulez faire - une translation ou une rotation d'un objet, sans affecter les autres. - PDF_save sera toujours suivi d'un PDF_restore. - - - - Voir aussi PDF_restore. - - - - - - - - PDF_restore - Restaure un environnement sauvé. - - - Description - - void pdf_restore - int pdf document - - - PDF_restore restaure un environnement sauvé par - PDF_save. Cela fonctionne de manière identique à la commande - postscript grestore. Très pratique lorsque vous vous faire des translations ou des - rotations sans affecter les autres objets. - - Sauver et Restaurer un environnement - -<?php PDF_save($pdf); -// tout un lot de rotations, translations, transformations... -PDF_restore($pdf) ?> - - - - Voir aussi PDF_save. - - - - - - - - PDF_translate - Choisi l'origine du système de coordonnées. - - - Description - - void pdf_translate - int pdf document - double x-coor - double y-coor - - - PDF_translate place l'origine du système de coordonnées au - point (x-coor, y-coor). L'exemple - suivant trace une ligne de (0, 0) à (200, 200) par rapport aux coordonnées - initiales. Il faut aussi désigner le point courant après - PDF_translate et avant de commencer à dessiner les objets. - - - Translation - -<?php PDF_moveto($pdf, 0, 0); -PDF_lineto($pdf, 100, 100); -PDF_stroke($pdf); -PDF_translate($pdf, 100, 100); -PDF_moveto($pdf, 0, 0); -PDF_lineto($pdf, 100, 100); -PDF_stroke($pdf); -?> - - - - - - - - PDF_scale - Choisi l'échelle. - - - Description - - void pdf_scale - int pdf document - double x-scale - double y-scale - - - PDF_scale choisi l'échelle dans les deux directions. - L'exemple suivant multiplie l'échelle par 72. La ligne suivante sera dessinée sur - un pouce (2.54 cm) de large. - - - Mise à l'échelle - -<?php PDF_scale($pdf, 72.0, 72.0); -PDF_lineto($pdf, 1, 1); -PDF_stroke($pdf); -?> - - - - - - - - PDF_rotate - Choisi la rotation. - - - Description - - void pdf_rotate - int pdf document - double angle - - - PDF_rotate choisi la rotation en degré. - - - - - - - - PDF_setflat - Fixe la platitude (flatness). - - - Description - - void pdf_setflat - int pdf document - double value - - - PDF_setflat choisi la platitude, et lui affecte une valeur - entre 0 et 100. - - - - - - - - PDF_setlinejoin - Choisi le paramètre linejoin. - - - Description - - void pdf_setlinejoin - int pdf document - long value - - - PDF_setlinejoin choisi le paramètre "linejoin", et lui - affecte une valeur entre 0 et 2. - - - - - - - - PDF_setlinecap - Choisi le paramètre linecap. - - - Description - - void pdf_setlinecap - int pdf document - int value - - - PDF_setlinecap affecte au paramètre linecap une valeur entre - 0 et 2. - - - - - - - - PDF_setmiterlimit - Choisi la "miter limit". - - - Description - - void pdf_setmiterlimit - int pdf document - double value - - - PDF_setmiterlimit choisi la "miter limit" et lui affecte - une valeur supérieure à 1. - - - - - - - - PDF_setlinewidth - Choisi la largeur de ligne. - - - Description - - void pdf_setlinewidth - int pdf document - double width - - - PDF_setlinewidth affecte à largeur de ligne la valeur - width. - - - - - - - - PDF_setdash - Choisi les caractères de remplissage. - - - Description - - void pdf_setdash - int pdf document - double white - double black - - - PDF_setdash choisi les caractères de remplissage, - et affecte white comme caractère invisible, et - black comme caractère de remplissage. Si les deux sont à - zéros, une ligne continue est affichée. - - - - - - - - PDF_moveto - Choisi le point courant. - - - Description - - void pdf_moveto - int pdf document - double x-coor - double y-coor - - - PDF_moveto déplace le point courant à la position - (x-coor, y-coor). - - - - - - - - PDF_curveto - Dessine une courbe. - - - Description - - void pdf_curveto - int pdf document - double x1 - double y1 - double x2 - double y2 - double x3 - double y3 - - - PDF_curveto dessine une courbe de Bezier entre le point - courant et le point (x3, y3) en - utilisant les points de contrôle (x1, - y1) et (x2, - y2). - - - - Voir aussi PDF_moveto, - PDF_lineto, - PDF_stroke. - - - - - - - - PDF_lineto - Dessine une ligne. - - - Description - - void pdf_lineto - int pdf document - double x-coor - double y-coor - - - PDF_lineto dessine une ligne entre le point courant et le - point de coordonnées (x-coor, - y-coor). - - - - Voir aussi PDF_moveto, - PDF_curveto, - PDF_stroke. - - - - - - - - PDF_circle - Dessine un cercle. - - - Description - - void pdf_circle - int pdf document - double x-coor - double y-coor - double radius - - - PDF_circle dessine un cercle de centre - (x-coor, y-coor), et de rayon - radius. - - - - Voir aussi PDF_arc, - PDF_stroke. - - - - - - - - PDF_arc - Dessine un arc. - - - Description - - void pdf_arc - int pdf document - double x-coor - double y-coor - double radius - double start - double end - - - PDF_arc dessine un arc de cercle, de centre - (x-coor, y-coor) et de - rayon radius, en commencant à l'angle - start et finissant à l'angle end. - - - - Voir aussi PDF_circle, - PDF_stroke. - - - - - - - - PDF_rect - Dessine un rectangle. - - - Description - - void pdf_rect - int pdf document - double x-coor - double y-coor - double width - double height - - - PDF_rect dessine un rectangle un rectangle de coin - inférieur gauche de coordonnées - (x-coor, y-coor). - Sa longueur vaut width. Et sa largeur - height. - - - - Voir aussi PDF_stroke. - - - - - - - PDF_closepath - Ferme et clos le chemin. - - - Description - - void pdf_closepath - int pdf document - - - PDF_closepath ferme et clos le chemin courant. Cela signifie - qu'une ligne va être ajoutée entre le point courant et le premier point du chemin. - De nombreuses fonctions telles que PDF_moveto, - PDF_circle et PDF_rect démarre un - nouveau chemin. - - - - - - - - PDF_stroke - Dessine le long du chemin. - - - Description - - void pdf_stroke - int pdf document - - - PDF_stroke dessine une ligne le long du chemin. Le chemin - courant est la somme de toutes les lignes déssinées. Sans cette fonction, la - ligne de chemin ne sera pas dessinée. - - - - Voir aussi PDF_closepath, - PDF_closepath_stroke. - - - - - - - - PDF_closepath_stroke - Ferme le chemin et dessine le long du chemin. - - - Description - - void pdf_closepath_stroke - int pdf document - - - PDF_closepath_stroke est une combinaison de - PDF_closepath et PDF_stroke. - Elle ferme aussi le chemin. - - - - Voir aussi PDF_closepath, - PDF_stroke. - - - - - - - PDF_fill - Remplis le chemin courant. - - - Description - - void pdf_fill - int pdf document - - - PDF_fill remplis l'intérieur du chemin courant avec la - couleur courante. - - - - Voir aussi PDF_closepath, - PDF_stroke, - PDF_setgray_fill, - PDF_setgray, - PDF_setrgbcolor_fill, - PDF_setrgbcolor. - - - - - - - - PDF_fill_stroke - Remplis et dessine le chemin courant. - - - Description - - void pdf_fill_stroke - int pdf document - - - PDF_fill_stroke remplis l'intérieur du chemin courant avec - la couleur courante, puis dessine le chemin courant. - - - - Voir aussi PDF_closepath, - PDF_stroke, - PDF_fill, - PDF_setgray_fill, - PDF_setgray, - PDF_setrgbcolor_fill, - PDF_setrgbcolor. - - - - - - - - PDF_closepath_fill_stroke - Remplis, dessine et ferme le chemin courant. - - - Description - - void pdf_closepath_fill_stroke - int pdf document - - - PDF_closepath_fill_stroke clos le chemin, le remplis avec la - couleur courante, et dessine le chemin. - - - - Voir aussi PDF_closepath, - PDF_stroke, - PDF_fill, - PDF_setgray_fill, - PDF_setgray, - PDF_setrgbcolor_fill, - PDF_setrgbcolor. - - - - - - - - PDF_endpath - Ferme le chemin courant. - - - Description - - void pdf_endpath - int pdf document - - - PDF_endpath ferme le chemin courant mais ne le clos pas. - - - - Voir aussi PDF_closepath. - - - - - - - - PDF_clip - Aligne sur le chemin courant. - - - Description - - void pdf_clip - int pdf document - - - PDF_clip aligne tous les dessins sur le chemin courant. - - - - - - - - PDF_setgray_fill - Choisi la couleur grise comme couleur de remplissage. - - - Description - - void pdf_setgray_fill - int pdf document - double gray value - - - PDF_setgray_fill choisi la couleur grise comme couleur de - remplissage. - - - - Voir aussi PDF_setrgbcolor_fill. - - - - - - - - PDF_setgray_stroke - Fixe la couleur de dessin à un niveau de gris. - - - Description - - void pdf_setgray_stroke - int pdf document - double gray value - - - PDF_setgray_stroke Fixe la couleur de dessin à un niveau - de gris. - - - - Voir aussi PDF_setrgbcolor_stroke. - - - - - - - - PDF_setgray - Choisi la couleur grise comme couleur de remplissage et de dessin. - - - Description - - void pdf_setgray - int pdf document - double gray value - - - PDF_setgray choisi la couleur grise comme couleur de - remplissage et de dessin. - - - - Voir aussi PDF_setrgbcolor_stroke, - PDF_setrgbcolor_fill. - - - - - - - - PDF_setrgbcolor_fill - Choisi la couleur rgb comme couleur de remplissage. - - - Description - - void pdf_setrgbcolor_fill - int pdf document - double red value - double green value - double blue value - - - PDF_setrgbcolor_fill choisi la couleur rgb comme couleur - de remplissage. - - - - Voir aussi PDF_setrgbcolor_fill. - - - - - - - - PDF_setrgbcolor_stroke - Choisi la couleur rgb comme couleur de remplissage. - - - Description - - void pdf_setrgbcolor_stroke - int pdf document - double red value - double green value - double blue value - - - PDF_setrgbcolor_stroke choisi la couleur rgb comme couleur - de remplissage. - - - - Voir aussi PDF_setrgbcolor_stroke. - - - - - - - - PDF_setrgbcolor - Choisi la couleur rgb comme couleur de dessin et de remplissage. - - - Description - - void pdf_setrgbcolor - int pdf document - double red value - double green value - double blue value - - - PDF_setrgbcolor_stroke choisi la couleur rgb comme couleur - de remplissage. - - - - Voir aussi PDF_setrgbcolor_stroke, - PDF_setrgbcolor_fill. - - - - - - - - PDF_add_outline - Ajoute un signet sur la page courante. - - - Description - - int pdf_add_outline - int pdf document - string text - int parent - int open - - - PDF_add_outline ajoute un signet de nom - text sur la page courante, et au point courant. - Le signet est inséré comme un fils de la page parent et - est ouvert par défaut si open n'est pas 0. La valeur - retournée est un identifiant du signet, qui pourra être réutilisé comme parent - d'autres signets. Vous pouvez ainsi créer des hiérarchies de signets. - - - Malheureusement, pdflib ne copie pas la chaîne, ce qui force PHP à allouer la - mémoire. Actuellement, cette mémoire n'est jamais libérée par une fonction PDF, - mais prise en charge par le gestionnaire PHP. - - - - - - - - PDF_set_transition - Fixe le mode de transition entre les pages. - - - Description - - void pdf_set_transition - int pdf document - int transition - - - PDF_set_transition Fixe le mode de transition entre les - pages. La valeur de transition peut être : - - - - 0 : aucune transition, - - - 1 : deux lignes en travers de l'écran représente la page, - - - 2 : plusieurs lignes en travers de l'écran représente la page, - - - 3 : une boite représente la page, - - - 4 : une seule ligne en travers de l'écran représente la page, - - - 5 : l'ancienne page se dissout pour revéler la nouvelle, - - - 6 : l'effet page d'un coin à l'autre - - - 7 : l'ancienne page est simplement remplacée par la nouvelle (valeur par défaut) - - - - Voir aussi PDF_set_duration. - - - - - - PDF_set_duration - Choisi la durée de transition entre deux pages. - - - Description - - void pdf_set_duration - int pdf document - double duration - - - PDF_set_duration choisi la durée de transition, en secondes, - entre deux pages. - - - Voir aussi PDF_set_transition. - - - - - - - PDF_open_gif - Ouvre une image GIF. - - - Description - - int pdf_open_gif - int pdf document - string filename - - - PDF_open_gif ouvre et charge l'image GIF du fichier - filename. Le format doit être GIF. La fonction retourne un - identifiant d'image PDF : - - - Inclusion d'un image GIF - -<?php -$im = PDF_open_gif($pdf, "test.gif"); -pdf_place_image($pdf, $im, 100, 100, 1); -pdf_close_image($pdf, $im); -?> - - - - - Voir aussi PDF_close_image, - PDF_open_jpeg, - PDF_open_memory_image, - PDF_execute_image, - PDF_place_image, - PDF_put_image. - - - - - - - PDF_open_memory_image - Ouvre une image créée par les fonctions images PHP. - - - Description - - int pdf_open_memory_image - int pdf document - int image - - - PDF_open_memory_image prend comme argument une image créée - avec les fonctions PHP, et la rend disponible opur le document PDF. La fonction - retourne un identifiant PDF d'image. - - - Inclusion d'une image mémoire - -<?php -$im = ImageCreate(100, 100); -$col = ImageColorAllocate($im, 80, 45, 190); -ImageFill($im, 10, 10, $col); -$pim = PDF_open_memory_image($pdf, $im); -ImageDestroy($im); -pdf_place_image($pdf, $pim, 100, 100, 1); -pdf_close_image($pdf, $pim); -?> - - - - - Voir aussi PDF_close_image, - PDF_open_jpeg, - PDF_open_gif, - PDF_execute_image, - PDF_place_image, - PDF_put_image. - - - - - - - PDF_open_jpeg - Ouvre une image JPEG. - - - Description - - int pdf_open_jpeg - int pdf document - string filename - - - PDF_open_jpeg ouvre et charge l'image JPEG du fichier - filename. - Le format de l'image doit être JPEG. La fonction retourne un identifiant d'image - PDF. - - - Voir aussi PDF_close_image, - PDF_open_gif, - PDF_open_memory_image, - PDF_execute_image, - PDF_place_image, - PDF_put_image. - - - - - - - PDF_close_image - Ferme une image. - - - Description - - void pdf_close_image - int image - - - PDF_close_image ferme une image qui a été ouverte par - PDF_open_gif ou PDF_open_jpeg. - - - Voir aussi PDF_open_jpeg, - PDF_open_gif, - PDF_open_memory_image. - - - - - - - PDF_place_image - Place une image dans la page. - - - Description - - void pdf_place_image - int pdf document - int image - double x-coor - double y-coor - double scale - - - PDF_place_image place l'image image - dans la page courante, à la position (x-coor, - x-coor). L'image peut changer d'échelle simultanémement. - - - Voir aussi PDF_put_image. - - - - - - - PDF_put_image - - Enregistre une image dans un fichier PDF pour utilisation ultérieure. - - - - Description - - void pdf_put_image - int pdf document - int image - - - PDF_put_image enregistre une image dans un fichier PDF pour - utilisation ultérieure. L'image n'est pas visible. On peut l'afficher avec la - fonction PDF_execute_image, et aussi souvent que désiré. Cela - permet d'utiliser plusieurs fois la même image, sans augmenter la taille du - fichier. PDF_put_image et - PDF_execute_image est fortement recommandé pour les images - de grande taille (plusieurs ko) si elles sont affichées plus d'une fois dans le - document. - - Cette fonction n'a plus de sens avec la version 2.01 de pdflib. Elle ne fera que - retourner une alerte. - - - - Voir aussi PDF_put_image, - PDF_place_image, - PDF_execute_image. - - - - - - - PDF_execute_image - Place une image enregistrée dans la page. - - - Description - - void pdf_execute_image - int pdf document - int image - double x-coor - double y-coor - double scale - - - PDF_execute_image affiche une image qui a été enregistrée - dans le document PDF, avec la fonction PDF_put_image. - L'image est implantée dans la page courante, et aux coordonnées données. - - - L'image peut être changée d'échelle en même temps qu'elle est affichée. Une - échelle de 1.0 affichera l'image à sa taille d'origine. - - Cette fonction n'a plus de sens avec la version 2.01 de pdflib. Elle ne fera que - retourner une alerte. - - - - Affichage multiple d'une image. - -<?php -$im = ImageCreate(100, 100); -$col1 = ImageColorAllocate($im, 80, 45, 190); -ImageFill($im, 10, 10, $col1); -$pim = PDF_open_memory_image($pdf, $im); -pdf_put_image($pdf, $pim); -pdf_execute_image($pdf, $pim, 100, 100, 1); -pdf_execute_image($pdf, $pim, 200, 200, 2); -pdf_close_image($pdf, $pim); -?> - - - - - - - - - pdf_add_annotation - Ajoute une annotation. - - - Description - - void pdf_add_annotation - int pdf document - double llx - double lly - double urx - double ury - string title - string content - - - pdf_add_annotation ajoute une note, dont le coin - inférieur droit est (llx, lly) - et le coin supérieur droit est - (urx, ury). - - - - - - - - + + Fonctions PDF + PDF + + + Vous disposez de fonctions PDF en PHP pour créer des + fichiers PDF, pour peu que vous ayez la bibliothèque PDF + de Thomas Merz (disponible à : + &url.pdf; (site anglais)). Vous aurez + aussi besoin des librairies JPEG library, + the TIFF library, pour compiler cette + librairie. Ces deux librairies posent pas mal de problèmes lors + de la configuration. Suivez attentivement les messages d'erreur. + + + Reportez vous à l'excellente documentation de pdflib, disponible + avec la distribution de pdflib. C'est une introduction très + pratique des capacités de pdflib. La plus part des fonctions + de pdflib se retrouvent dans PHP sous le même nom. De même, les + paramètres sont identiques. Vous devez connaître les concepts + de base de PDF ou de Postscript pour utiliser efficacement ce module. + Toutes les longueurs et coordonnées sont mesurées en + points Postscript points. Il y a généralement + 72 points PostScript par pouce, mais cela dépend en + fait de la résolution d'affichage. + + + Il y a un autre module PHP pour créer des document PDF, + basé sur la bibliothèque + FastIO's's ClibPDF. + Les API sont légèrement différentes. + Reportez vous à la section fonctions ClipPDF + pour plus de détails. + + + Le module PDF introduit un nouveau type de variables. C'est + pdfdoc : c'est un pointeur sur un document PDF et toutes + les fonctions l'utilise comme premier paramètre. + + + Confusion entre les vieilles version de pdflib + + Depuis le début du support de PDF sous PHP, ( commençant avec la version + pdflib 0.6), il y a eu des milliers de modifications dans les API de + pdflib. La plus part de ces modifications ont été suivies par PHP, + et parfois même au prix de modifications des API PHP. Depuis la version + 3.x, ces API semblent s'être stabilisées, et PHP 4 a adoptée cette + version comme le minimum nécessaire pour supporter PDF. En conséquence + de quoi, un grand nombre de fonction vont disparaître, ou être + remplacée. Le support de pdflib 0.6 est complétement abandonné. + La liste suivante indique quelles sont les fonctions obsolète + dans PHP 4.02, et qui devraient être remplacées par de nouvelles versions. + + +

+ Fonctions obsolètes et leur remplacements + + + + Anciennes fonctions + Nouvelles fonctions + + + + + pdf_put_image + Désormais inutile + + + pdf_get_font + pdf_get_value avec + "font" comme second paramètre. + + + pdf_get_fontsize + pdf_get_value avec + "fontsize" comme second paramètre. + + + pdf_get_fontname + pdf_get_parameter avec + "fontname" comme second paramètre. + + + pdf_set_info_creator + pdf_set_info avec + "Creator" comme second paramètre. + + + pdf_set_info_title + pdf_set_info avec + "Title" comme second paramètre. + + + pdf_set_info_subject + pdf_set_info avec + "Subject" comme second paramètre. + + + pdf_set_info_author + pdf_set_info avec + "Author" comme second paramètre. + + + pdf_set_info_keywords + pdf_set_info avec + "Keywords" comme second paramètre. + + + pdf_set_leading + pdf_set_value avec + "leading" comme second paramètre. + + + pdf_set_text_rendering + pdf_set_value avec + "textrendering" comme second paramètre. + + + pdf_set_text_rise + pdf_set_value avec + "textrise" comme second paramètre. + + + pdf_set_horiz_scaling + pdf_set_value avec + "horizscaling" comme second paramètre. + + + pdf_set_text_matrix + Désormais inutile + + + pdf_set_char_spacing + pdf_set_value avec + "charspacing" comme second paramètre. + + + pdf_set_word_spacing + pdf_set_value avec + "wordspacing" comme second paramètre. + + + pdf_set_transition + pdf_set_parameter avec + "transition" comme second paramètre. + + + pdf_set_duration + pdf_set_value avec + "duration" comme second paramètre. + + + pdf_open_gif + pdf_open_image_file avec + "gif" comme second paramètre. + + + pdf_open_jpeg + pdf_open_image_file avec + "jpeg" comme second paramètre. + + + pdf_open_tiff + pdf_open_image_file avec + "tiff" comme second paramètre. + + + pdf_open_png + pdf_open_image_file avec + "png" comme second paramètre. + + + pdf_get_imagewidth + pdf_get_value avec + "imagewidth" comme second paramètre et + l'image comme troisième. + + + pdf_get_imageheight + pdf_get_value avec + "imageheight" comme second paramètre et + l'image comme troisième. + + + + + + + +
+ + + + Conseils pour installer pdflib 3.x + + Depuis la version 3.0 de pdflib vous pouvez configurer cette librairie + avec l'option --enable-shared-pdflib. + + + + Installation des anciennes versions de pdflib + + Si vous utilisez pdflib 2.01 vérifiez comment votre librairie a été + installée. Il doit y avoir un fichier (ou un lien) vers libpdf.so. + La version 2.01 ne fait que créer une librairie avec le nom + libpdf2.01.so qui ne peut être trouvé lors de la compilation du + programme de configuration. Vous devez créer vous même ce lien + symbolique de libpdf.so vers libpdf2.01.so.. + + + La version 2.20 de pdflib a introduit de nombreuses modifications dans ses + API, ainsi que le support des polices chinoises et japonaises. Cela + impliquent malheureusement des modifications dans le module PDF de + PHP 4 (mais pas de PHP 3). Si vous utilisez pdflib 2.20, + gérer correctement votre mémoire. Jusqu'à la version 3.0, pdflib + peut se révéler très instable. Le paramètre d'encodage + pdf_set_font est devenu une chaîne. Cela + signifique notamment qu'il faut remplacer 4 par 'winansi'. + + + Si vous utilisez pdflib 2.30, pdf_set_text_matrix + a disparu. Elle n'est plus supporté. En général, il est recommandé + de consulter les notes de version de la pdflib pour lister toutes les + modifications. + + + A partir du 9 mars 2000, PHP 4 ne supporte plus que la + version 3.0 et plus récente de pdflib. PHP 3, par contre, ne doit pas + être utilisé avec des versions plus récentes que la 2.01. + + + + Examples</t