Les fonctions PDF permettent de créer des fichiers PDF en utilisant la librairie PDFlib créée par Thomas Merz.
La documentation de cette section est uniquement destinée à être une introduction aux fonctions disponibles, et ne doit pas être considérée comme une référence exaustive. Reportez vous à la documentation inclue dans la distribution de PDFlib pour plus de détails et d'explications. Elle fournit une excellente référence des capacités de PDFlib, et contient la documentation la plus à jour.
Toutes les fonctions de la PDFlib et du module PHP ont des noms et des arguments identiques. Vous aurez à comprendre quelques concepts basiques de PDF et PostScript pour l'utiliser efficacement. Toutes les longueurs et coordonnées sont mesurées en points PostScript. Il y a généralement 72 points PostScript pour faire un pouche (2.54 cm), mais cela dépend de la résolution de sortie. Reportez vous à la documentation PDFlib inclue dans la distribution pour plus de détails sur le système de coordonnées.
Notez que la plupart des fonctions PDF requièrent une ressource pdf object comme premier paramètre. Voyez les exemples ci-dessous pour plus de détails.
Note : Si vous êtes intéressés par des alternatives gratuites pour générer des PDF, sans passer par des librairies PDF, voyez cette entrée de la FAQ.
PDFlib est disponible en téléchargement à http://www.pdflib.com/products/pdflib/index.html, mais impose l'achat d'une license pour l'utiliser commercialement. Les librairies JPEG et TIFF sont nécessaires pour faire fonctionner cette librairie.
Pour inclure le support de la PDFlib dans votre PHP, il faut compiler PHP avec l'option --with-pdflib[=DIR]. DIR est le dossier d'isntallation de PDFlib, et par défaut, il vaut /usr/local. De plus, vous pouvez aussi spécifier les dossiers des libariries jpeg, tiff, et png que vous voulez utiliser avec la PDFlib. Ceci est optionnel pour PDFlib 4.x. Pour cela, ajoutes les lignes suivantes à votre script de configuration : --with-jpeg-dir[=DIR], --with-png-dir[=DIR] et --with-tiff-dir[=DIR].
Lorsque vous utilisez les versions 3.x de PDFlib, vous devez configurer PDFlib avec l'option --enable-shared-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 plupart 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ètes en PHP 4.02, et qui devraient être remplacées par de nouvelles versions.
Tableau 1. Fonctions obsolètes et leur remplacement
Ancienne fonction | Remplacement |
---|---|
pdf_put_image() | Désormais inutile. |
pdf_execute_image() | Désormais inutile. |
pdf_get_annotation() | pdf_get_bookmark() en utilisant les mêmes paramètres. |
pdf_get_font() | pdf_get_value() en passant "font" comme second paramètre. |
pdf_get_fontsize() | pdf_get_value() en passant "fontsize" comme second paramètre. |
pdf_get_fontname() | pdf_get_parameter() en passant "fontname" comme second paramètre. |
pdf_set_info_creator() | pdf_set_info() en passant "Creator" comme second paramètre. |
pdf_set_info_title() | pdf_set_info() en passant "Title" comme second paramètre. |
pdf_set_info_subject() | pdf_set_info() en passant "Subject" comme second paramètre. |
pdf_set_info_author() | pdf_set_info() en passant "Author" comme second paramètre. |
pdf_set_info_keywords() | pdf_set_info() en passant "Keywords" comme second paramètre. |
pdf_set_leading() | pdf_set_value() en passant "leading" comme second paramètre. |
pdf_set_text_rendering() | pdf_set_value() en passant "textrendering" comme second paramètre. |
pdf_set_text_rise() | pdf_set_value() en passant "textrise" comme second paramètre. |
pdf_set_horiz_scaling() | pdf_set_value() en passant "horizscaling" comme second paramètre. |
pdf_set_text_matrix() | Désormais abandonnée. |
pdf_set_char_spacing() | pdf_set_value() en passant "charspacing" comme second paramètre. |
pdf_set_word_spacing() | pdf_set_value() en passant "wordspacing" comme second paramètre. |
pdf_set_transition() | pdf_set_parameter() en passant "transition" comme second paramètre. |
pdf_open() | pdf_new() suivi d'un appel à pdf_open_file() |
pdf_set_font() | pdf_findfont() suivi d'un appel à pdf_setfont() |
pdf_set_duration() | pdf_set_value() en passant "duration" comme second paramètre. |
pdf_open_gif() | pdf_open_image_file() en passant "gif" comme second paramètre. |
pdf_open_jpeg() | pdf_open_image_file() en passant "jpeg" comme second paramètre. |
pdf_open_tiff() | pdf_open_image_file() en passant "tiff" comme second paramètre. |
pdf_open_png() | pdf_open_image_file() en passant "png" comme second paramètre. |
pdf_get_image_width() | pdf_get_value() en passant "imagewidth" comme second paramètre et l'image en troisième paramètre. |
pdf_get_image_height() | pdf_get_value() en passant "imageheight" comme second paramètre et l'image en troisième paramètre. |
La plupart des fonctions sont simples d'emploi. Le plus difficile est probablement de créer un fichier PDF simple. L'exemple suivant devrait vous mettre sur les rails. Il crée un fichier test.pdf d'une page. La page contient du texte "Times Roman outlined", de taille de 30pt. Le texte est aussi souligné.
La distribution de la PDFlib contient des exemples plus complexes, qui créent un page avec une horloge à aiguille. Ici, nous utilisons la création de pages en mémoire, pour éviter l'utilisation de fichiers temporaires. L'exemple a été adapté à PHP. (Cet exemple est disponible dans la documentation CLibPDF.)
Exemple 2. Exemple pdfclock de PDFlib
|
Précédent | Sommaire | Suivant |
overload | Niveau supérieur | pdf_add_annotation |